通过 children
属性设置通知栏的内容,通过 NoticeBar.Icon
组件设置通知栏左侧的图标。
<NoticeBar scrollable>
<NoticeBar.Icon>
<VolumeOutlined />
</NoticeBar.Icon>
在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。
</NoticeBar>
通知栏的内容长度溢出时会自动开启滚动播放,通过 scrollable
属性可以控制该行为。
<!-- 文字较短时,通过设置 scrollable 属性开启滚动播放 -->
<van-notice-bar scrollable text="技术是开发它的人的共同灵魂。" />
<NoticeBar scrollable>技术是开发它的人的共同灵魂。</NoticeBar>
<!-- 文字较长时,通过禁用 scrollable 属性关闭滚动播放 -->
<NoticeBar scrollable={false}>
在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。
</NoticeBar>
文字较长时,可以通过设置 wordwrap
属性来开启多行展示。
<NoticeBar wordwrap scrollable={false}>
在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。
</NoticeBar>
通过 NoticeBar.Action
组件可以显示不同的通知栏模式。
<NoticeBar scrollable={false}>
技术是开发它的人的共同灵魂。
<NoticeBar.Action>
<Cross />
</NoticeBar.Action>
</NoticeBar>
<WhiteSpace />
<NoticeBar scrollable={false}>
技术是开发它的人的共同灵魂。
<NoticeBar.Action>
<ArrowRight />
</NoticeBar.Action>
</NoticeBar>
通过 style
属性设置文本颜色和背景色。
<NoticeBar style={{ color: "#1989fa", background: "#ecf9ff" }}>
<NoticeBar.Icon>
<InfoOutlined />
</NoticeBar.Icon>
技术是开发它的人的共同灵魂。
</NoticeBar>
搭配 NoticeBar 和 Swiper 组件可以实现垂直滚动的效果。
<NoticeBar>
<NoticeBar.Icon>
<VolumeOutlined />
</NoticeBar.Icon>
<Swiper className="notice-swiper" direction="vertical" autoplay={3000}>
<Swiper.Item>内容 1</Swiper.Item>
<Swiper.Item>内容 2</Swiper.Item>
<Swiper.Item>内容 3</Swiper.Item>
</Swiper>
</NoticeBar>
.notice-swiper {
height: 40px * 2;
line-height: 40px * 2;
}
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
className | 通知栏自定义类名 | string | - |
style | 通知栏自定义样式 | CSSProperties | - |
children | 通知文本内容 | ReactNode | - |
delay | 动画延迟时间 (ms) | number | string | 1000 |
speed | 滚动速率 (px/s) | number | string | 60 |
scrollable | 是否开启滚动播放,内容长度溢出时默认开启 | boolean | false |
wordwrap | 是否开启文本换行,只在禁用滚动时生效 | boolean | false |
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
名称 | 默认值 | 描述 |
---|---|---|
—notice-bar-height | 40px * $hd | - |
—notice-bar-padding | 0 var(—padding-md) | - |
—notice-bar-wordwrap-padding | var(—padding-xs) var(—padding-md) | - |
—notice-bar-color | var(—orange-dark) | - |
—notice-bar-font-size | var(—font-size-md) | - |
—notice-bar-line-height | 24px * $hd | - |
—notice-bar-background-color | var(—orange-light) | - |
—notice-bar-icon-size | 16px * $hd | - |
—notice-bar-icon-min-width | 24px * $hd | - |