VUE----数字增加,兼容小程序

数字增加,兼容小程序

requestAnimationFrame 为浏览器提供的方法

复制代码
export function countUp(duration, from, to, onProgress) {
	let value = from
	const speed = (to - from) / duration
	const start = Date.now()

	if (typeof window === 'undefined') {
		let requestAnimationFrame = (callback) => {
			setTimeout(() => {
				callback(Date.now());
			}, 1000 / 60); // 60为大多数显示器的刷新率
		}
	}

	function _run() {
		const t = Date.now() - start
		if (t >= duration) {
			value = to
			onProgress(value)
			return
		}

		value = from + t * speed
		onProgress(value)
		requestAnimationFrame(_run)
	}

	_run()
}

使用

复制代码
countUp(2000, 0, 200, (val) => {
	console.log(val.toFixed(0))
})
相关推荐
悠闲蜗牛�2 分钟前
零成本自建前端性能监控平台:从数据采集到可视化告警实战
前端
SuperEugene3 分钟前
常见设计模式在 JS 里的轻量用法:单例、发布订阅、策略
前端·javascript·设计模式·面试
广州华水科技6 分钟前
2026年大坝单北斗GNSS形变监测系统推荐榜单
前端
十一08299311 分钟前
扫描普通二维码跳转小程序
小程序
Mike_jia14 分钟前
RootDB:开源免费的Web报表工具,让数据可视化如此简单
前端
LawrenceLan18 分钟前
31.Flutter 零基础入门(三十一):Stack 与 Positioned —— 悬浮、角标与覆盖布局
开发语言·前端·flutter·dart
前端 贾公子19 分钟前
vue3 组件库的设计和实现原理 (下)
前端·javascript·vue.js
你怎么知道我是队长21 分钟前
前端学习---HTML---文本标签
前端·学习·html
竟未曾年少轻狂21 分钟前
JavaScript 对象与数组
java·前端·javascript·数组·对象
一次旅行21 分钟前
XSS总结
前端·xss