更新记录
1.0.1(2026-03-01) 下载此版本
- 修改配置
1.0.0(2026-03-01) 下载此版本
- 支持整数、小数、百分比等多种格式
- 支持自定义缓动函数(linear, easeIn, easeOut, easeInOut 等)
- 支持千分位分隔符
- 支持自定义前缀、后缀、颜色
- 使用 requestAnimationFrame 实现流畅动画
- 支持动态数值更新
- 支持循环动画模式
- 支持延迟启动
- 支持手动控制(start/pause/reset)
- 支持动画事件监听(start/update/end)
平台兼容性
uni-app(3.6.17)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(3.6.17)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
s-count-to 数字滚动动画组件
一个轻量级、高性能的数字滚动动画组件,让数据展示更加生动有趣
✨ 特性
- 🎯 简单易用 - 开箱即用,API 简洁明了
- ⚡️ 性能优异 - 使用 requestAnimationFrame,流畅丝滑
- 🎨 高度可定制 - 支持自定义缓动函数、颜色、前缀后缀等
- 🔢 多种格式 - 支持整数、小数、百分比、千分位分隔符
- 📱 全平台兼容 - 完美适配 H5、小程序、App 等各平台
- 🔄 动态更新 - 支持数值变化时自动重新动画
- 🎬 循环模式 - 支持动画循环播放
📦 安装
直接将 uni_modules/s-count-to 目录复制到项目的 uni_modules 目录下即可。
🚀 快速开始
<template>
<view class="container">
<!-- 基础用法 -->
<s-count-to :toValue="2024" />
<!-- 小数 -->
<s-count-to :toValue="99.99" :decimals="2" />
<!-- 百分比 -->
<s-count-to :toValue="88.88" :decimals="2" suffix="%" />
<!-- 千分位 -->
<s-count-to :toValue="1234567" :thousandsSeparator="true" />
</view>
</template>
<script setup>
import { ref } from 'vue'
</script>
📖 API
Props
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| toValue | Number | 必填 | 目标数值 |
| startValue | Number | 0 | 初始数值 |
| duration | Number | 1500 | 动画持续时间(ms) |
| autoplay | Boolean | true | 是否自动开始动画 |
| loop | Boolean | false | 是否循环动画 |
| decimals | Number | 0 | 小数位数 |
| useEasing | Boolean | true | 是否使用缓动函数 |
| easingFn | String | 'easeInOut' | 缓动函数类型 |
| delay | Number | 0 | 延迟开始时间(ms) |
| color | String | '' | 文字颜色 |
| suffix | String | '' | 后缀(如 %, 元) |
| prefix | String | '' | 前缀 |
| thousandsSeparator | Boolean | false | 是否使用千分位分隔符 |
| separator | String | ',' | 千分位分隔符符号 |
缓动函数类型
linear- 线性匀速easeIn- 加速easeOut- 减速easeInOut- 先加速后减速(默认)easeOutCubic- 三次方减速easeOutQuart- 四次方减速easeOutQuint- 五次方减速
Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| start | 动画开始时触发 | 当前值 |
| update | 动画更新时触发 | 当前值 |
| end | 动画结束时触发 | 目标值 |
Methods(通过 ref 调用)
| 方法名 | 说明 | 参数 |
|---|---|---|
| start | 开始动画 | - |
| pause | 暂停动画 | - |
| reset | 重置动画 | - |
💡 使用示例
基础用法
<s-count-to :toValue="2024" />
设置小数位数
<s-count-to :toValue="99.99" :decimals="2" />
百分比显示
<s-count-to :toValue="88.88" :decimals="2" suffix="%" color="#18bc37" />
千分位分隔符
<s-count-to
:toValue="1234567"
:thousandsSeparator="true"
suffix="元"
/>
自定义前缀和后缀
<s-count-to
:toValue="2024"
prefix="¥ "
suffix=".00"
color="#E67E22"
/>
控制动画时长和缓动
<s-count-to
:toValue="1000"
:duration="2000"
easingFn="easeOutQuart"
/>
延迟启动
<s-count-to
:toValue="2024"
:delay="1000"
/>
循环动画
<s-count-to
:toValue="100"
:loop="true"
/>
动态更新数值
<template>
<s-count-to :toValue="count" ref="countToRef" />
<button @click="updateCount">更新数值</button>
</template>
<script setup>
import { ref } from 'vue'
const count = ref(1000)
const countToRef = ref()
function updateCount() {
count.value += 500
}
</script>
手动控制动画
<template>
<s-count-to
:toValue="2024"
:autoplay="false"
ref="countToRef"
/>
<button @click="start">开始</button>
<button @click="pause">暂停</button>
<button @click="reset">重置</button>
</template>
<script setup>
import { ref } from 'vue'
const countToRef = ref()
function start() {
countToRef.value.start()
}
function pause() {
countToRef.value.pause()
}
function reset() {
countToRef.value.reset()
}
</script>
监听动画事件
<s-count-to
:toValue="2024"
@start="handleStart"
@update="handleUpdate"
@end="handleEnd"
/>
🎨 应用场景
- 📊 数据大屏 - 各类数据指标展示
- 💰 金融应用 - 金额、收益率变化
- 📈 统计报表 - 销售额、用户增长等
- 🏆 排行榜 - 分数、排名变化
- 🎮 游戏应用 - 积分、金币获取动画
- 🛒 电商应用 - 价格、销量展示
🔨 常见问题
Q: 为什么动画不流畅?
A: 确保使用 requestAnimationFrame,组件已内置支持。如果在低端设备上,可适当增加 duration。
Q: 如何显示货币格式?
A: 使用 prefix 和 thousandsSeparator 配合:
<s-count-to
:toValue="12345.67"
:decimals="2"
prefix="¥ "
:thousandsSeparator="true"
/>
Q: 小程序中不显示怎么办?
A: 确保已正确引入组件,部分小程序平台可能需要在 pages.json 中配置 easycom。
📝 更新日志
1.0.0 (2024-03-01)
- 🎉 首次发布
- ✨ 支持数字滚动动画
- 🎨 支持多种格式和自定义样式
- 📱 全平台兼容
📄 许可证
MIT License
如果觉得有用,请给个 ⭐️Star 支持一下!

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 40
赞赏 0
下载 11271826
赞赏 1866
赞赏
京公网安备:11010802035340号