Skip to content

RollText

快速开始

RollText 用于展示在元素自身宽度/高度内无法完整显示的文字。通过 forward 控制滚动方向,并将需要滚动的文本放在默认插槽中。需要限制可视区域时,直接在组件上设置 width / height 即可。

水平滚动

template
<fv-roll-text
    style="width: 260px;"
    :theme="theme"
    forward="right"
    mode="once"
    :duration="2500"
    :offset="160"
>
    这段标题太长了,在窄导航栏中显示不下
</fv-roll-text>

垂直滚动

template
<fv-roll-text
    style="width: 240px; height: 72px; border: 1px solid var(--vp-c-divider); border-radius: 4px; padding: 4px 8px;"
    :theme="theme"
    forward="down"
    mode="loop"
    :duration="2500"
    :interval="600"
>
    <div style="height: 22px; line-height: 22px;">1. 第一条公告</div>
    <div style="height: 22px; line-height: 22px;">2. 第二条公告</div>
    <div style="height: 22px; line-height: 22px;">3. 第三条公告</div>
    <div style="height: 22px; line-height: 22px;">4. 第四条公告</div>
    <div style="height: 22px; line-height: 22px;">5. 第五条公告</div>
</fv-roll-text>

滚动模式

mode 支持以下值:

  • once:一次性单向滚动。
  • repeat:多次单向滚动,每次到终点后等待 interval,再从起点重新开始。
  • bounce:来回滚动一次。
  • loop:循环来回滚动。
  • none:关闭自动滚动,适合只用手动滚动的场景。
template
<fv-roll-text
    style="width: 260px;"
    :theme="theme"
    forward="right"
    mode="loop"
    :duration="1800"
    :interval="400"
    :offset="120"
>
    循环来回滚动
</fv-roll-text>

手动滚动

设置 manual 可以允许鼠标滚轮或触摸手动滚动。自动滚动过程中会锁定手动滚动,因此纯手动示例请使用 mode="none"

template
<fv-roll-text
    style="width: 240px; height: 72px; border: 1px solid var(--vp-c-divider); border-radius: 4px; padding: 4px 8px;"
    :theme="theme"
    forward="down"
    mode="none"
    :manual="true"
>
    <div style="height: 22px; line-height: 22px;">1. 第一条公告</div>
    <div style="height: 22px; line-height: 22px;">2. 第二条公告</div>
    <div style="height: 22px; line-height: 22px;">3. 第三条公告</div>
    <div style="height: 22px; line-height: 22px;">4. 第四条公告</div>
    <div style="height: 22px; line-height: 22px;">5. 第五条公告</div>
</fv-roll-text>

悬停触发

使用 trigger="hover" 可以在鼠标悬停在组件上时才启动滚动,鼠标移出后停止。

template
<fv-roll-text
    style="width: 260px;"
    :theme="theme"
    forward="right"
    mode="loop"
    :duration="1800"
    :interval="400"
    :offset="120"
    trigger="hover"
>
    这是一段足够长的标题文字,在狭窄的导航栏中无法完整显示,因此鼠标悬停在这里时会持续滚动,移出后自动停止
</fv-roll-text>

属性


属性类型必填默认值说明
forwardstring'right'滚动方向。支持 rightlefthorizontaldownupvertical
modestring'once'播放模式。支持 oncerepeatbounceloopnone
triggerstring'auto'动画触发方式。auto 自动开始;hover 鼠标进入时开始、移出时停止。
durationnumber3000单次滚动的持续时间,单位为毫秒。
delaynumber0动画开始前的延迟时间,单位为毫秒。
intervalnumber1000重复滚动或来回滚动之间的暂停时间,单位为毫秒。
offsetnumber / stringnull滚动位移距离,单位为像素。为 null 时自动使用完整溢出距离;设为 0 可关闭滚动。
easestring'power1.inOut'滚动动画使用的 GSAP 缓动函数。
manualbooleanfalse是否允许鼠标 / 触摸手动滚动。自动滚动过程中始终禁止手动滚动。
themestring'global'主题样式。支持 globallightdarkcustom
disabledbooleanfalse是否禁用组件。
langstring"global"语言选项。

事件


事件名参数说明
start-动画开始时触发。
iteration-每次重复或来回滚动周期完成时触发。
end-有限动画结束时触发。

插槽


  1. Default

默认插槽用于放置需要滚动的文本。

javascript
<fv-roll-text>
    内容
</fv-roll-text>

MIT Licensed