封装数字滚动动画函数

数字滚动动画是一种常见的视觉效果,通常用于展示数据增长或变化的动态过程。通过封装一个通用的数字滚动动画函数,可以方便地在不同项目中复用。

动画函数实现

javascript 复制代码
function animation({from, to, duration, onProgress}) {
    let value = from;
    let startTime = Date.now();
    const speed = (to - from) / duration;
    
    function _run() {
        const t = Date.now() - startTime
        if (t >= duration) {
            value = to;
            onProgress && onProgress();
            return;
        }
        value = from + speed * t;
        onProgress && onProgress();
        requestAnimationFrame(_run);
    }
    _run();
}

函数参数说明

  • from:动画起始值
  • to:动画结束值
  • duration:动画持续时间(毫秒)
  • onProgress:动画进度回调函数

使用示例

html 复制代码
<script>
animation({
    from: 0,
    to: 100,
    duration: 1000, // 1s
    onProgress(value) {
        numberDom.innerHTML = value
    }
})
</script>

实现原理

动画函数基于requestAnimationFrame实现平滑的动画效果。通过计算当前时间与开始时间的差值,确定动画进度。使用线性插值公式计算当前值:

value = from + speed * t

其中speed为变化速率,由总变化量除以持续时间计算得出。当动画时间超过设定时长时,直接设置为最终值并结束动画。

优化方向

可以增加缓动函数支持,实现更丰富的动画效果。常见的缓动函数包括二次方缓动、三次方缓动、弹性缓动等。也可以添加暂停、继续等控制功能,增强动画的交互性。

参考文献

  1. 封装动画函数 # JavaScript # 前端开发工程师 # 编程 # 程序员 # web前端 复制此链接,打开Dou音搜索,直接观看视频!
相关推荐
涛涛ing11 分钟前
Navigation API正式Baseline:那个让无数前端头疼的History API,终于可以退休了
前端
Hilaku18 分钟前
为什么我劝应届生不要去创业公司写前端?
前端·javascript·程序员
郑州光合科技余经理21 分钟前
出海外卖平台:支付对接为什么要和下单收款分开
android·java·开发语言·前端·后端·php·ai编程
data analyse 45635 分钟前
前端自建访问统计,访客标识怎么设计才稳?Cookie、本地存储与设备指纹的取舍
前端·数据分析
终端安全笔记40 分钟前
配置锁状态那一栏查的是什么:报告里几项各自指向什么风险
android·前端·安全·ios
恋猫de小郭1 小时前
Kotlin Toolchain 0.13,JetBrains 推荐 KMP 都切换到到全新工具链
android·前端·flutter
我是人✓1 小时前
Java面向对象核心特性深度解析
java·前端·算法
晓得迷路了1 小时前
栗子前端技术周刊第 149 期 - Vite+ 1.0、Preact 11、Next.js 16.4...
前端·javascript·react.js
IT_陈寒1 小时前
为什么我的Vue组件总是莫名其妙更新?
前端·人工智能·后端
狂师1 小时前
2026年APP自动化测试工具大全,12款主流工具一次看懂
前端·开源·测试