0

我正在研究新兴的requestAnimationFrame标准cancelAnimationFrame

http://paulirish.com/2011/requestanimationframe-for-smart-animating/

以及此处提供的各种 polyfill:

https://gist.github.com/paulirish/1579671

使用这些函数的语义对我来说有点棘手。具体来说,假设你requestAnimationFrame(callback)曾经。cancelAnimationFrame如果您想requestAnimationFrame(callback)在第一个回调被调用之前第二次调用,是否有必要调用?浏览器会重复调用回调吗?或者浏览器会自动用一个调用替换双调用?

我问是因为我当前的动画在 Firefox 上真的很滞后,并且 requestAnimationFrame 似乎没有太大帮助。但我可能从多个来源调用它太快了。对此有权威的回答会很棒。

4

1 回答 1

0

根据规范:

笔记

requestAnimationFrame 仅计划对基于脚本的动画进行一次更新。如果需要后续动画帧,则需要在回调中再次调用 requestAnimationFrame。

另请注意,使用相同回调多次调用 requestAnimationFrame(在调用回调并清除列表之前)将导致列表中具有相同回调的多个条目,因此将导致该回调被多次调用动画帧。

http://www.w3.org/TR/animation-timing/

调用requestAnimationFrame将只安排一个回调调用。处理完您的回调后,如果已删除,则其在回调列表中的条目。因此,您不必取消之前的通话。

于 2013-05-03T18:24:42.437 回答