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))
})
相关推荐
LFly_ice19 分钟前
学习React-23-React-router
前端·学习·react.js
我叫张小白。37 分钟前
TypeScript对象类型与接口:构建复杂数据结构
前端·javascript·typescript
墨客希43 分钟前
如何快速掌握大型Vue项目
前端·javascript·vue.js
大福ya1 小时前
AI开源项目改造NextChat(ChatGPT-Next-Web)实现前端SSR改造打造一个初始框架
前端·chatgpt·前端框架·开源·aigc·reactjs·ai编程
n***33351 小时前
SpringBoot返回文件让前端下载的几种方式
前端·spring boot·后端
千寻技术帮1 小时前
50040_基于微信小程序的项目管理系统
小程序·源码·讲解·文档·ppt
纯粹的热爱2 小时前
🌐 阿里云 Linux 服务器 Let's Encrypt 免费 SSL 证书完整部署指南
前端
北辰alk2 小时前
Vue3 自定义指令深度解析:从基础到高级应用的完整指南
前端·vue.js
AAA阿giao2 小时前
使用 Vite + Vue 3 搭建项目并配置路由的全流程(含国内镜像加速)
vue.js·node.js·vite
小熊哥7222 小时前
谈谈最进学习(低延迟)直播项目的坎坷与收获
前端