取消当前所有正在运行的RequestAnimationFrame请求。

3

我同时调用了多个requestAnimationFrame。我该如何取消所有的requestAnimationFrame以使它们不再运行?


3
你不应该一开始就这样做。使用一个名为 tick() 的单一函数,这样你可以轻松地停止所有事情。 - user5734311
@ChrisG,你能否解释一下我该如何做到这一点? - Zamboni
这取决于您当前拥有的代码。 - user5734311
2个回答

7
您可以调用requestAnimationFrame,存储返回的ID,然后为小于该数字的所有正整数调用cancelAnimationFrame
function cancelAllAnimationFrames(){
   var id = window.requestAnimationFrame(function(){});
   while(id--){
     window.cancelAnimationFrame(id);
   }
}

2
window.requestAnimationFrame(()=>{}) 返回一个数字,可与 window.cancelAnimationFrame(number) 一起使用。因此,将数字存储在数组中,然后遍历该数组以取消数字。
来自 MDN 的信息: window.requestAnimatioFrame window.cancelAnimationFrame

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接