Skip to content

NumberRoller 数字翻牌

用于数据看板、订单金额、实时统计、营收数字等需要“数字滚动增长感”的场景。组件支持整数、小数、千分位与自定义格式化输出。

交互式调试

🔧调试模式Playground

基础用法

vue
<script setup lang="ts">
import { ref } from 'vue'

const count = ref(12890)
</script>

<template>
  <lk-number-roller :value="count" />
</template>

调整动画时长

vue
<lk-number-roller :value="3560" :speed="1200" />

金额显示

vue
<view style="display:flex;align-items:flex-end;gap:8rpx">
  <text style="font-size:48rpx;color:var(--lk-color-primary)">¥</text>
  <lk-number-roller :value="482345.78" :decimals="2" :digit-height="64" :speed="600" />
</view>

千分位与分隔符

vue
<lk-number-roller
  :value="1234567.89"
  :decimals="2"
  :grouping="true"
  group-separator=","
  decimal-separator="."
/>

自定义格式化

适合在数字前后拼接单位或做业务型文本格式化。

vue
<lk-number-roller
  :value="85"
  :formatter="(value) => `${value}%`"
/>

关闭滚动动画

vue
<lk-number-roller :value="9999" :autoplay="false" />

推荐示例

1) 直接复用项目 Demo(推荐)

vue
<script setup lang="ts">
import NumberRollerDemo from '@/components/demos/number-roller-demo.vue'
</script>

<template>
  <NumberRollerDemo />
</template>

2) 在业务页中按需组合

vue
<template>
  <view class="page-demo">
    <lk-number-roller />
  </view>
</template>

API

Props

参数说明类型默认值
value最终展示的值number | string0
speed动画时长,单位 msnumber800
easing动画缓动曲线string'cubic-bezier(0.33, 1, 0.68, 1)'
digitHeight单个数字视窗高度,单位 rpxnumber56
decimals小数位数,传 null 表示跟随原值number | nullnull
grouping是否启用千分位分隔booleantrue
groupSeparator千分位分隔符string','
decimalSeparator小数分隔符string'.'
autoplay是否启用滚动动画booleantrue
formatter自定义格式化函数(value) => string | numbernull

Events

当前版本未额外暴露自定义事件。

Slots

当前版本未提供插槽。

使用建议

TIP

如果你的场景对布局稳定性要求较高,建议在同一块看板中统一 digitHeight 和字体大小,避免不同数字组件之间的视觉跳动。

基于 MIT 协议开源 · 粤ICP备2022114240号-3

NumberRoller 数字翻牌

正在连接预览服务...

请先运行 pnpm run dev:h5