setTimeout(()=>{
// 设置样式
}, 200)
如果用requestAnimationFrame来替换setTimeout,应该怎么写?
setTimeout(()=>{
// 设置样式
}, 200)
如果用requestAnimationFrame来替换setTimeout,应该怎么写?
// 定义一个变量存储定时器,可以通过cancelAnimationFrame(timer)来取消循环
let timer = null;
// 这是 循环设置样式 的方法
const setStyle = () => {
timer = requestAnimationFrame(() => {
// 设置样式
// ...
setStyle();
})
}
// 执行方法
setStyle();
requestAnimationFrame
只有一个参数,也就是回调函数。
所以,把 setTimeout
的第二个参数去掉,就是 RAF 的语法:
requestAnimationFrame(() =>{
// 回调函数的代码块
});
如果有计时的需求的话,还是建议使用 setTimeout
。
13 回答12.7k 阅读
8 回答2.4k 阅读
2 回答5k 阅读✓ 已解决
7 回答1.9k 阅读
9 回答1.6k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
5 回答795 阅读
如果你要计时的话,就加个计数器。
参考:MDN Window.requestAnimationFrame()