requestAnimationFrame倒计时
时间: 2024-01-31 18:11:02 浏览: 267
requestAnimationFrame是浏览器提供的一个用于定时循环操作的接口,它可以用来实现倒计时效果。相比于setTimeout和setInterval,requestAnimationFrame具有更好的性能和更准确的定时器。
下面是一个使用requestAnimationFrame实现倒计时的示例代码:
```javascript
function countdown(seconds) {
var start = Date.now();
function update() {
var elapsed = Date.now() - start;
var remainingSeconds = Math.max(0, seconds - Math.floor(elapsed / 1000));
console.log(remainingSeconds);
if (remainingSeconds > 0) {
requestAnimationFrame(update);
}
}
update();
}
countdown(10); // 倒计时10秒
```
在上面的代码中,我们定义了一个countdown函数,它接受一个参数seconds表示倒计时的总秒数。在函数内部,我们使用requestAnimationFrame来更新倒计时的剩余时间,并在控制台输出剩余秒数。当剩余秒数大于0时,我们再次调用requestAnimationFrame来实现循环更新,直到倒计时结束。
需要注意的是,requestAnimationFrame的回调函数会在浏览器每一帧绘制之前执行,因此它的执行频率通常与屏幕刷新率相匹配,可以实现更平滑的动画效果。
阅读全文