requestAnimationFrame的用法

时间:2023-03-08 23:33:45
requestAnimationFrame的用法

该方法用于在浏览器中制作动画。通过递归调用同一方法来不断更新画面以达到动起来的效果,但它优于setTimeout/setInterval的地方在于它是由浏览器专门为动画提供的API,在运行时浏览器会自动优化方法的调用,并且如果页面不是激活状态下的话,动画会自动暂停,有效节省了CPU开销。

该方法1秒刷新的帧数大概为60,即一秒刷新60次页面

function  animation(){
    //你的动画
   requestAnimationFrame(arguments.callee)
}

我们也可以和停止setTimeout/setInterval一样停止掉requestAnimationFrame

我们得先给requestAnimationFrame一个名字

例如:

let  animationName = requestAnimationFrame

//然后就可以停止掉了

window.cancelAnimationFrame(animationName )