蓝戒博客

  • 首页
  • 研发说
  • 架构论
  • 效能录
  • AI谈
  • 随笔集
智构苍穹
融合 AI、架构与工程实践,沉淀方法论,构建可持续的技术价值。
  1. 首页
  2. 研发说
  3. 正文

countUp.js实现有趣动画方式展示数字变化

2016年11月1日 16841点热度 0人点赞 0条评论

关于countUp.js

countUp.js是一个轻量经的JavaScript类,不依赖任何第三方库。可用于以一种有趣的动画展示数字变化。

示例地址:http://inorganik.github.io/countUp.js/

项目主页:http://www.open-open.com/lib/view/home/1389595782555

尽管名字叫countUp,实际上它可以在任一方向上进行变化,这是根据startVal和endVal传递参数判断。

countup.js支持所有浏览器。

countup

参数配置:

target = 目标元素的 ID;
startVal = 开始值;
endVal = 结束值;
decimals = 小数位数,默认值是0;
duration = 动画延迟秒数,默认值是2;
options = 演示格式化选项对象

其他方法:
切换暂停/恢复:

numanim.pauseresume();

重设动画:

numAnim.reset();

更新值和在结束动画:

var someValue = 1337;
numAnim.update(someValue);

数值大的动画:
对于大的数字,自正数还有很长的路要走,仅仅几秒钟,动画似乎突然停止。将溶液从100减去你的endVal然后,使用callback来调用update这完成了方法与动画相同,只相差100动画

var endVal = 9645.72;
var numAnim = new CountUp("targetElem", 0, endVal - 100, duration/2);
numAnim.start(function() {
numAnim.update(endVal);
});

Angular中使用
Angular中使用时,动画如以下实例中,确保包括countUp.js和angular-countUp.js并进行注入countUpModule:

<h2 count-up end-val="873.4"></h2>

可选的回调:

<h2 count-up id="numberAnimation" end-val="873.4" scroll-spy-event="elementFirstScrolledIntoView" scroll-spy></h2>

宽松的自定义:

您可以任选你适用宽松自定义功能,需要接收4个参数来计算贝塞尔(Bezier)曲线:

t(当前时间);
b(初期值);
c(之间的差和目标值);
d(总时间)的吐温。
你可以使用任何的罗伯特的Penner宽松政策功能。避免提到“弹动”功能,因为它们引起在两个方向计数

如果你不指定自定义的缓和功能,累计使用默认easeOutExpo。

实例:

var easeOutCubic = function(t, b, c, d) {
var ts = (t /= d) * t;
var tc = ts * t;
return b + c * (1.77635683940025e-15 * tc * ts + 0.999999999999998 * tc + -3 * ts + 3 * t);
};
var options = {
easingFn: easeOutCubic
};
var demo = new CountUp("myTargetElement", 24.02, 94.62, 2, 2.5, options);
demo.start();

标签: js库
最后更新:2025年9月13日

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

最新 热点 随机
最新 热点 随机
AI 开始雇佣人类?RentAHuman 爆火背后:一场关于「AI 代理经济」的真实实验 大模型巅峰对决:GPT-5.4 Pro 横空出世,Gemini 3.1、Grok 4.2、Claude Opus 4.6 谁才是最强 AI? AI 编程神器 Qoder 专业版免费体验攻略 + QoderWork 全面解析 OpenClaw 太费 Token 的终极解决方案(可省 90%+) Agent 生态分裂:OpenClaw 之外,OpenFang 给出另一条路 近2亿阅读《如何在一天内彻底改变你的人生》原文完整翻译与总结思考
基于 Monaco Editor 的 Web Component 智能提示实践Skills Desktop 完全指南:从认识到实践,打造你的 AI 技能中枢不只是聊天机器人:Composio,让 AI 真正“动手干活”AI 智能体框架选型:主流方案对比与建议ChatDev:把 AI 组织成“团队”,帮你把事做完的多智能体平台Codex 国内如何使用与安装?一篇真正能跑通的完整教程
AI 开始雇佣人类?RentAHuman 爆火背后:一场关于「AI 代理经济」的真实实验 Web Workers:释放浏览器多线程的魔力 JS获取浏览器窗口大小、获取屏幕、浏览器、网页高度宽度方法 CodeGeeX:更懂中文的开源 AI 编程助手,上手真的很简单 🚀 用 LangChain / AutoGPT 搭建一个可执行的 AI 周报助手 字节跨平台框架 Lynx 开源:为 Web 开发者带来原生级跨端体验的全新选择
最近评论
渔夫 发布于 4 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8

COPYRIGHT © 2025 蓝戒博客_智构苍穹-专注于大前端领域技术生态. ALL RIGHTS RESERVED.

京ICP备12026697号-2