我想在超时后取消动画。这是我的代码
function animate(){
id = requestAnimationFrame(animate);
console.log(id);
c.clearRect(0,0, window.innerWidth, window.innerHeight);
for(let i = 0; i < circleArray.length; i++){
circleArray[i].scatter();
}
setTimeout(function(){
id = requestAnimationFrame(animate);
cancelAnimationFrame(id);
update();
},5000)
}
function update(){
requestAnimationFrame(update);
c.clearRect(0,0, window.innerWidth, window.innerHeight);
for(let i = 0; i < circleArray.length; i++){
circleArray[i].update();
}
}
在这里,我想停止 animate 函数的递归并启动更新函数。但动画不会停止,更新功能在给定时间后同时运行。