因为是浏览器自带的函数,所以执行动画的频率和浏览器显示频率是一致的(目前大部分浏览器显示频率为16.7ms,即1000/60ms),并且在切换到别的tab页之后,也就是页面没被激活时是不执行动画的。和setInterval setTimeout相比,执行堵塞的情况少。
回调函数可以自己定义,所以相对于css3的动画方法又有很多灵活性。比如动画执行曲线,完全可以自己定义。
当然,人无完人,这个方法也是有缺陷的,那就是浏览器兼容性。RequestAnimationFrame浏览器支持情况如下:
因为是浏览器自带的函数,所以执行动画的频率和浏览器显示频率是一致的(目前大部分浏览器显示频率为16.7ms,即1000/60ms),并且在切换到别的tab页之后,也就是页面没被激活时是不执行动画的。和setInterval setTimeout相比,执行堵塞的情况少。
回调函数可以自己定义,所以相对于css3的动画方法又有很多灵活性。比如动画执行曲线,完全可以自己定义。
当然,人无完人,这个方法也是有缺陷的,那就是浏览器兼容性。RequestAnimationFrame浏览器支持情况如下: