setTimeout() setInterval() requestAnimationFrame()

转载自:https://segmentfault.com/a/1190000004039023
三个方法都可以实现js动画效果,推荐使用requestAnimationFrame().
requestAnimationFrame()的优势:
1、做出的动画效果更流畅,因为它无需设置动画调用时间间隔,是自动跟紧浏览器的绘制的帧率。
requestAnimationFrame()方法正是为了满足高性能动画的需求而提供的API,通过setInterval方法控制的动画其调用的间隔由程序员设置,而requestAnimationFrame()无须设置调用间隔, 它自动紧跟浏览器的绘制的帧率(一般浏览器的显示帧率是60fps,差不多每帧间隔16.7ms)
2、另外requestAnimationFrame()在隐藏或不可见的元素中将不会进行重绘或回流,大大降低了开销。关于该方法的其他细节见MDN文档? window.requestAnimationFrame

你可能感兴趣的:(setTimeout() setInterval() requestAnimationFrame())