HTML5中的 requestAnimationFrame
在mdn中,是这么讲的:
window.requestAnimationFrame() 方法告诉浏览器您希望执行动画,并请求浏览器调用指定的函数在下一次重绘之前更新动画。该方法使用一个回调函数作为参数,这个回调函数会在浏览器重绘之前调用。如果你想做逐帧动画的时候,你应该用这个方法。这就要求你的动画函数执行会先于浏览器重绘动作。通常来说,被调用的频率是每秒60次,但是一般会遵循W3C标准规定的频率。如果是后台标签页面,重绘频率则会大大降低。
说了这么多,其实调用方法很简单,就是window.requestAnimationFrame(callback);
传入一个回调函数就可以了
比如我们在下面1<div id="block" class="block"></div>
|
|
对脚本中定义一个回调函数animate, 然后依次的增加with变量,然后在回调中继续调用,这样就能实现每个frame的刷新,现在回过头看,requestAnimationFrame, 字面意义,就是实现逐帧的动画嘛,但是和定时器不同的是,它会和浏览器重绘的频率保持一致,因此比定时器更加流畅~~~