本文介绍: requestAnimationFrame动画请求帧—–它是一个浏览器的宏任务。 requestAnimationFrame的用法与setTimeout、setInterval很相似,只是不需要设置时间间隔而已。requestAnimationFrame使用一个回调函数作为参数,这个回调函数会在浏览器重绘之前调用。它返回一个整数,表示定时器的编号,这个值可以传递给cancelAnimationFrame用于取消这个函数的执行
1.定义
它是一个浏览器的宏任务。 requestAnimationFrame的用法与setTimeout、setInterval很相似,只是不需要设置时间间隔而已。requestAnimationFrame使用一个回调函数作为参数,这个回调函数会在浏览器重绘之前调用。它返回一个整数,表示定时器的编号,这个值可以传递给cancelAnimationFrame用于取消这个函数的执行。
2.特点
【1】requestAnimationFrame会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率。
【2】在隐藏或不可见的元素中,requestAnimationFrame将不会进行重绘或回流,这当然就意味着更少的CPU、GPU和内存使用量。
【3】requestAnimationFrame是由浏览器专门为动画提供的API,在运行时浏览器会自动优化方法的调用,并且如果页面不是激活状态下的话,动画会自动暂停,有效节省了CPU开销
3.浏览器动画原理
要真正理解requestAnimationFrame的优势首先要清楚浏览器动画的基本实现思路。实际上就是在前端运行一个频繁触发的函数,这个函数每次运行时都是更新物体的位置属性,比如每次都沿X方向每次都会加1,当这个函数的触发频率足够高,人眼就不会有任何察觉,因此显示在屏幕上的效果就是流畅的动画了。
4. CSS3动画和JS动画的比较
·CSS动画优点
·CSS动画缺点
·JS动画优点
·JS动画缺点
5. setTimeout 、setInterval、requestAnimationFrame区别
1》setInterval
2》setTimeout
3》requestAnimationFrame
4》与setTimeout和setInterval的区别
5》requestAnimationFrame补充
5.应用场景
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。