TUI

0.3.7
NumberGrow 数字滚动
NumberGrow 是一个用于展示数字动态增长动画的组件,适用于可视化看板、大屏数据展示、统计数字增长等场景。 支持设置开始值、结束值、动画时长、小数精度、自定义步长等属性,支持懒加载与是否只播放一次的控制。
基础用法
默认从 0 增长到目标值,播放一次。
0
示例代码
vue
<TsNumberGrow :value="1000" :play="true" />
支持小数点与步长
通过设置 decimals 和 step 支持小数增长效果。
0.00
示例代码
vue
<TsNumberGrow :start="0" :value="100.25" :duration="2" :step="0.05" :decimals="2" :play="true" />
懒加载模式
进入视口区域后自动播放一次动画,适合大屏滚动场景。
0
示例代码
vue
<template>
  <TsNumberGrow :value="5000" :lazy="true" :playOnce="true" @start="handleStart"/>
</template>

<script setup lang="ts">
  const handleStart = ()=>{
    console.log('开始播放')
  }
</script>
手动控制播放
通过绑定变量控制播放时机。
0
示例代码
vue
<template>
  <TsNumberGrow :start="100" :value="0" :playOnce="false" :play="reversalPlay" @end="reversalPlay = false" />
  <TsButton @click="reversalPlay = true" style="margin-left: 50px">播放</TsButton>
</template>

<script setup lang="ts">
  const play = ref(false);
  const handleEnd = ()=>{
    console.log("结束")
  }
</script>
数字递减动画
演示数字从较大值递减至目标值的动画效果。可通过按钮控制是否播放。
100
示例代码
vue
<template>
  <TsNumberGrow :value="888" :play="play" :playOnce="false" @end="handleEnd"/>
  <TsButton @click="play = !play" style="margin-left: 50px;">播放</TsButton>
</template>

<script setup lang="ts">
  const reversalPlay = ref(false);
</script>
属性 Props
属性名
说明
类型
可选值
默认值
版本说明
duration
动画时长(秒)
Number
-
2
start
起始值
Number
-
0
value
目标值
Number
-
0
play
是否播放动画(响应式控制)
Boolean
-
false
decimals
小数精度
Number
-
0
step
每帧步进大小
Number
-
1
lazy
是否懒加载(进入视口播放)
Boolean
-
false
playOnce
是否只播放一次(懒加载场景)
Boolean
-
true
事件Events
事件名
说明
类型
start
动画开始触发, 仅在lazy为true时生效
-
end
动画播放完成触发
-