为什么 window.requestAnimationFrame 只运行一次 step 函数?

在浏览器中打开以下 HTML 文件时,时间戳仅记录一次,为什么该step函数不像我那样每秒调用多次?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
</head>
<body>
<script>
    function step(timestamp) { console.log(timestamp) }
    window.requestAnimationFrame(step)
</script>
</body>
</html>

回答

它只运行一次。为了让它重复,我们必须调用requestAnimationFrame内部step让它继续https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame

前:

function step(timestamp) {
console.log(timestamp)
}
window.requestAnimationFrame(step)

后:

let i = 0;
function step(timestamp) {
console.log(timestamp);
i++;
if (i < 10) {
window.requestAnimationFrame(step);
}
}
window.requestAnimationFrame(step)

以上是为什么 window.requestAnimationFrame 只运行一次 step 函数?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>