我正在研究requestAnimationFrame
和cancelAnimationFrame
http://paulirish.com/2011/requestanimationframe-for-smart-animating/
以及此处提供的各种填充物:
使用这些函数的语义对我来说有点棘手。具体来说,假设您requestAnimationFrame(callback)
一次。
如果你想在第一次回调被调用之前第二次cancelAnimationFrame
,是否需要调用requestAnimationFrame(callback)
?浏览器会重复调用回调吗?或者浏览器会自动将双重呼叫替换为单个呼叫吗?
我问因为my current animation is really laggy on Firefox,而requestAnimationFrame似乎没有太多帮助。但我可能会从多个来源过快地调用它。对此的权威答案会很棒。
答案 0 :(得分:0)
根据规范:
请注意
requestAnimationFrame仅调度单个更新 基于脚本的动画。如果需要后续动画帧, 然后需要从内部再次调用requestAnimationFrame 回调。
另请注意,对requestAnimationFrame的多次调用具有相同的功能 回调(在调用回调并清除列表之前)将 导致多个条目在列表中具有相同的回调, 因此会导致回调被多次调用 动画框架。
http://www.w3.org/TR/animation-timing/
对requestAnimationFrame
的调用只会调度一次回拨。处理完回调后,如果删除了回调列表中的条目。所以你不必取消之前的电话。