本文已参与「新人创作礼」活动,一起开启掘金创作之路
即请求动画帧,是中提供的动画,简称。可以优化浏览器中并行的动画动作,更合理的重新排列动作序列,并把能够合并的动作放在一个渲染周期内完成,从而呈现出更流畅的动画效果。
与相比,最大的优势是由浏览器来决定回调函数的执行时机,即紧跟浏览器的刷新步调。
具体一点讲,如果屏幕刷新频率是,那么回调函数每被执行一次,如果屏幕刷新频率是,那么这个时间间隔就变成了。它能保证回调函数在屏幕每一次的刷新间隔中只被执行一次,这样就不会引起丢帧现象,自然不会导致动画的卡顿。屏幕的刷新频率可在电脑中“”中查看,一般为
工作中经常遇到动画的情况,之前常用的方法使用或实现,但随着应用的越来越复杂,性能方面就会降低。所以选择使用来实现相同效果。这里就简单记录使用的方法
简单用法
requestAnimationFrame还有以下优势: CPU节能: 使用setTimeout实现的动画,当页面被隐藏(隐藏的)或最小化(后台标签页)时,setTimeout仍然在后台执行动画任务,由于此时页面处于不可见或不可用状态,刷新动画是没有意义的,而且还浪费 CPU 资源和电池寿命。而则完全不同,,,有效节省了 CPU 开销,提升性能和电池寿命。