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