帧动画requestAnimationFrame

本文探讨了JavaScript中的requestAnimationFrame方法,通过对比setTimeout,解释了requestAnimationFrame如何根据浏览器刷新频率自动调节执行时间,确保动画的流畅性。同时,介绍了requestAnimationFrame在后台标签页自动暂停以节省资源的特性,以及在不同浏览器中60Hz的帧率表现,进一步说明其在防止掉帧方面的优势。
摘要由CSDN通过智能技术生成
requestAnimationFrame

来看一个小例子

<body>
	<div id="box"></div>
</body>
<script type="text/javascript">
	var box = document.getElementById("box");
	function run(){
		box.innerHTML = new Date().getTime();
		setTimeout(run, 16);
	}
	setTimeout(run, 16);
</script>

这个例子当中, 我们通过setTimeout让run函数每秒执行60次.

想要按照浏览器的刷新频率来执行函数, 其实不需要这么麻烦.

另外, 如果浏览器的刷新频率不是60, 甚至低于60, 那么我们的动画就可能出现掉帧情况.

 

啥叫掉帧?

一般情况下, 浏览器的帧率跟屏幕帧率一致, 基本都是60, 也就是16ms左右会刷新一次
如果, 你的定时器时间过短, 就会出现上图的现象.
在浏览器两次刷新画面中间, 定时器函数执行了2次
而这2次操作都是在内存完成的动作, 浏览器只有刷新才能看到效果
也就是说, 用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值