当前位置: 首页 > article >正文

CountUp.js 实现数字增长动画 Vue

效果:

在这里插入图片描述

官网介绍

1. 安装

npm install --save countup.js

2. 基本使用

// template
<span ref="number1Ref"></span>

// script
const number1Ref = ref<HTMLElement>()
onMounted(() => {
  new CountUp(number1Ref.value!, 9999999).start()
})

3. 参数

new CountUp(参数一, 参数二, option)
// 源码:CountUp类的构造函数,前两个参数必传,第三个参数为可选
constructor(target: string | HTMLElement | HTMLInputElement, endVal: number, options?: CountUpOptions);
  • 参数一: 数字所在容器
  • 参数二: 数字的最终值
  • option:更多配置项(可选)
// 括号内为默认值
interface CountUpOptions {
  startVal?: number; // 开始数字 (0)
  decimalPlaces?: number; // 小数位数 (0)
  duration?: number; // 动画时间:秒 (2)
  useGrouping?: boolean; // ,的位置。示例: 1,000 vs 1000 (true)
  useIndianSeparators?: boolean; // ,的位置。示例: 1,00,000 vs 100,000 (false)
  useEasing?: boolean; // ease animation (true)
  smartEasingThreshold?: number; // smooth easing for large numbers above this if useEasing (999)
  smartEasingAmount?: number; // amount to be eased for numbers above threshold (333)
  separator?: string; // 分隔符 (',')
  decimal?: string; // 小数点 ('.')
  // easingFn: easing function for animation (easeOutExpo)
  easingFn?: (t: number, b: number, c: number, d: number) => number;
  formattingFn?: (n: number) => string; // 格式化为字符串
  prefix?: string; // 在结果前面添加字符
  suffix?: string; // 在结果后面添加字符
  numerals?: string[]; // 数字替换。numeral glyph substitution
  enableScrollSpy?: boolean; // 当视图可见时开始动画
  scrollSpyDelay?: number; // 视图可见后,延迟多久(单位:ms)开始动画
  scrollSpyOnce?: boolean; // 只运行一次
  onCompleteCallback?: () => any; // 动画完成后的回调函数
  onStartCallback?: () => any; // 动画开始时的回调函数
  plugin?: CountUpPlugin; // 插入CountUp动画
}

4. 示例

const option = {
  duration: 5,	// 动画持续时间5秒
  prefix: '¥'	// 在结果加前缀字符 ¥
}
onMounted(() => {
  new CountUp(number1Ref.value!, 9999999, option).start()
})

在这里插入图片描述

参考文章:CountUp.js( 轻量级数字动画插件 )原文链接


http://www.kler.cn/a/354866.html

相关文章:

  • FreePBX修改IP地址和端口以及添加SSL证书开启HTTPS访问
  • Apifox 12月更新|接口的测试覆盖情况、测试场景支持修改记录、迭代分支能力升级、自定义项目角色权限、接口可评论
  • FIR数字滤波器设计——窗函数设计法——滤波器的时域截断
  • 【火猫DOTA2】VP一号位透露队伍不会保留原阵容
  • Spring事务回滚
  • flask后端开发(11):User模型创建+注册页面模板渲染
  • AsyncTask的工作原理和缺陷
  • 供应链大变革:低代码技术助力企业数字化转型!
  • ES6扩展运算符
  • GitLab CVE-2024-6389、CVE-2024-4472 漏洞解决方案
  • java-uniapp小程序-引导关注公众号、判断用户是否关注公众号
  • Python知识点:如何使用Corda与Python进行企业区块链开发
  • 【android studio】Gradle和Gradle插件版本关系/配置/常见ERR示例
  • RAG拉满-上下文embedding与大模型cache
  • 牛企查:性价比很高的企业综合查询小程序
  • C语言:符号“->”在C语言中什么意思呢?
  • Hive中的metastore(元数据存储)
  • Java设计模式梳理:行为型模式(策略,观察者等)
  • vue3项目打包生成dist文件夹后在本地怎么查看
  • 一种3D打印跑车模型LED安全夜灯
  • React 高级阶段学习计划
  • WNMP环境本地搭建并配置公网地址远程搭建动态网站或服务器
  • npm install 失败,报错 error sha512
  • uniapp打包成安卓video标签层级问题解决
  • matlab怎样将数据按行拼接和按列拼接(水平拼接竖直拼接)
  • 太速科技-509-基于XCVU13P的4路QSFP28光纤PCIeX16收发卡