浏览器动画的实现是通过在一定频率下重新渲染得到的,每一帧都间隔相同的时间。在CSS动画中,浏览器知道动画的开始和每一帧的时间间隔,所以动画的效果很流畅。但在用JS实现的动画中,一般用定时器实现时,存在着时间间隔并不可靠的问题,如果线程里有其他任务存在,定时器执行任务的时间间隔并不一定能保证是自己设定的数值;这样容易导致动画产生延迟停滞,效果大打折扣;
为了解决这个问题,引入了requestAnimationFrame()方法。该方法属于window,效果类似于CSS动画,而不用再担心JS中的时间间隔不可靠问题。requestAnimationFrame()方法的时间间隔一般定为与显示器刷新频率相一致;使用方式与setTimeout()方法类似
目前高级浏览器已经实现这一方法,只是各个浏览器的名称不一致;
浅谈浏览器动画与requestAnimationFrame
最新推荐文章于 2024-03-05 14:32:06 发布