Skip to content

NoticeBar 滚动通知

该组件用于滚动通告场景,有多种模式可供选择。

滚动数据

通过 list 设置滚动数据。数据为一个对象数组,具体的数据格式请查看下方示例:

vue
<template>
    <!-- 通过 keyName 设置滚动数据 item 中表示滚动文本数据的 key 名称 -->
    <hi-notice-bar :list="list" keyName="text"></hi-notice-bar>
</template>

<script setup>
    import { ref } from 'vue';

    // 滚动数据
    const list = ref([
        { text: "试问闲愁都几许?一川烟草,满城风絮,梅子黄时雨。" },
        { text: "万里归来颜愈少,微笑,笑时犹带岭梅香。试问岭南应不好,却道:此心安处是吾乡。" },
        { text: "春未绿,鬓先丝,人间别久不成悲。谁教岁岁红莲夜,两处沉吟各自知。" },
        { text: "双飞燕子几时回?夹岸桃花蘸水开。春雨断桥人不度,小舟撑出柳阴来。" },
        { text: "水且涸,荷叶出地寻丈,因列坐其下。上不见日,清风徐来,绿云自动。" },
        { text: "满室天香仙子家,一琴一剑一杯茶。羽衣常带烟霞色,不染人间桃李花。" }
    ]);
</script>

纵向滚动

组件默认是横向滚动,如果需要纵向滚动,可以设置 vertical 来开启纵向滚动。

vue
<!-- 开启纵向滚动模式 -->
<hi-notice-bar :list="list" vertical></hi-notice-bar>

滚动时长/速度

此组件共有两种控制滚动速度的方式:

  • 通过 duration 为每条通知设置一样的滚动总时长。默认为 undefined
  • 通过 speed 为通知设置每秒移动的固定距离,单位为 px。默认为 undefined

提示

上方两种模式只能生效一个。duration 优先级高于 speed。如果需要开启 speed 模式,需保证 duration 的值为 false(undefined、0、null 等等)

提示

组件默认内部的实现是 duration 模式,默认横向滚动时为 5s(非步近模式)、1.5s(步近模式) ,纵向滚动时为 2.5s(非步近模式)、0.5s(步近模式) 。可通过 duration 属性进行修改。

vue
<hi-notice-bar :list="list" duration="10s"></hi-notice-bar>
<hi-notice-bar :list="list" vertical speed="10px"></hi-notice-bar>

步近模式

通过 step 属性设置是否开启步近模式。
一般开启步近模式时,建议同步设置一下滚动间隔 interval

vue
<hi-notice-bar :list="list" step interval="2s"></hi-notice-bar>
<hi-notice-bar :list="list" vertical step interval="2s"></hi-notice-bar>

通知图标

  • 通过 icon 属性设置是否显示通知图标。
  • 通过 iconName 属性设置通知图标名称。
  • 通过 iconColor 属性设置通知图标颜色。
  • 通过 iconSize 属性设置通知图标大小。
vue
<hi-notice-bar :list="list" icon iconName="notice" iconColor="#ff0000" iconSize="1.5em"></hi-notice-bar>

更多按钮

  • 通过 arrow 属性设置是否显示更多按钮。
  • 通过 arrowIcon 属性设置更多按钮图标。
  • 通过 arrowColor 属性设置更多按钮图标颜色。
  • 通过 arrowSize 属性设置更多按钮图标大小。
vue
<hi-notice-bar :list="list" arrow arrowIcon="more" arrowColor="#ff0000" arrowSize="1.5em"></hi-notice-bar>

关闭按钮

  • 通过 close 属性设置是否显示关闭按钮。
  • 通过 closeIcon 属性设置关闭按钮图标。
  • 通过 closeColor 属性设置关闭按钮图标颜色。
  • 通过 closeSize 属性设置关闭按钮图标大小。
vue
<hi-notice-bar :list="list" close closeIcon="close" closeColor="#ff0000" closeSize="1.5em"></hi-notice-bar>

Props

属性名说明类型默认值可选值版本
hover指定按下去的样式类,生效于滚动文字、更多按钮和关闭按钮Stringhi-hover--
show显示状态Booleantruefalse-
list数据列表Array<Object>[]--
keyName显示的文本属性名Stringtext--
vertical是否开启纵向滚动模式Booleanfalsetrue-
duration单条通知滚动持续时长,单位为秒Numbernull--
speed每秒滚动距离,单位 pxNumbernull--
interval滚动间隔,即滚动结束和下条数据滚动开始之间的间隔,单位:秒Number0--
step是否开启步近模式Booleanfalsetrue-
lines显示的行数,尽在开启步近模式时生效Number1--
icon是否显示通知图标Booleantruefalse-
iconName通知图标名称String__gonggao--
iconColor通知图标颜色String---
iconSize通知图标大小String---
arrow是否显示右侧箭头(更多按钮)Booleanfalsetrue-
arrowIcon右侧箭头图标名称String__you--
arrowColor右侧箭头图标颜色String---
arrowSize右侧箭头图标大小String---
close是否显示关闭按钮Booleanfalsetrue-
closeIcon关闭按钮图标名称String__shanchu--
closeColor关闭按钮图标颜色String---
colseSize关闭按钮图标大小String---

Event

事件名说明回调参数版本
itemClick数据项点击事件item: 数据项数据。index: 数据项索引。-
arrow箭头(更多按钮)点击事件--
close关闭按钮点击事件--

样式变量

组件提供了以下样式变量,可以在使用时设置这些变量来修改组件的样式。

变量名默认值版本
--hi-notice-bar-displayflex-
--hi-notice-bar-align-itemscenter-
--hi-notice-bar-gap5px-
--hi-notice-bar-animation-duration100ms-
--hi-notice-bar-animation-timing-functionlinear-
--hi-notice-bar-transform-origincenter center-
--hi-notice-bar-content-flex1-
--hi-notice-bar-content-positionrelative-
--hi-notice-bar-content-overflowhidden-
--hi-notice-bar-content-height1.5em-
--hi-notice-bar-content-line-height1.5-
--hi-notice-bar-icon-colorinherit-
--hi-notice-bar-icon-font-size1.25em-
--hi-notice-bar-arrow-colorinherit-
--hi-notice-bar-arrow-font-size1.25em-
--hi-notice-bar-close-colorinherit-
--hi-notice-bar-close-font-size1.25em-
--hi-notice-bar-text-positionabsolute-
--hi-notice-bar-text-z-index8-
--hi-notice-bar-text-transformnone-
--hi-notice-bar-animation-duration5s / 2.5s / 1.5s / 0.5s-
--hi-notice-bar-animation-timing-functionlinear-
--hi-notice-bar-animation-iteration-count1-
--hi-notice-bar-animation-fill-modeforwards-

基于 MIT 许可发布