RequestAnimationFrame用于多个画布

Rit*_*hie 4 javascript html5 canvas

我有一个页面分层<canvas>像答案解释元素在这里.画布一起组成一个动画,因此每个都被清除并根据需要重新绘制.

现在我试图requestAnimationFrame通过使用跨浏览器垫片进行合并.但我真的不知道requestAnimationFrame幕后做了什么.

可以让它在每个循环中更新多个画布吗?每个画布应该有自己的循环吗?答案浏览器是否依赖?

Ilm*_*nen 6

更新所有画布requestAnimationFrame是完全可以的.

如果画布彼此独立并出现在页面的不同部分,那么您可能希望使用单个requestAnimationFrame处理程序,将canvas元素作为第二个参数传递.这样,只有当前可见的画布才会更新.(传递元素作为第二个参数是特定于WebKit的.)

是什么requestAnimationFrame做的是告诉你要更新页面的外观浏览器.当页面或元素接下来进行重绘时,浏览器会调用回调.当页面/元素可见时,这种情况就会发生,并且永远不会超过屏幕刷新率.