requestAnimationFrame实现动画如何给它设置一个时间间隔
时间: 2023-10-14 13:16:37 浏览: 429
`requestAnimationFrame` 并没有提供一个直接的设置时间间隔的方法,但是可以通过记录时间戳来实现。
可以使用`performance.now()`方法获取当前时间戳,然后计算出时间间隔,再根据时间间隔来控制动画的步进。
例如,以下代码展示了如何使用 `requestAnimationFrame` 实现每秒钟旋转一圈的动画:
```javascript
let start = null;
const element = document.getElementById('target');
function animate(timestamp) {
if (!start) start = timestamp;
const elapsed = timestamp - start;
const angle = (elapsed / 1000) * (2 * Math.PI); // 每秒钟旋转一圈
element.style.transform = `rotate(${angle}rad)`;
requestAnimationFrame(animate);
}
requestAnimationFrame(animate);
```
在上面的代码中,我们记录了动画开始时间戳 `start`,然后在每个 `animate` 函数调用中计算出时间间隔 `elapsed`。通过将时间间隔转换为角度,我们可以控制每秒钟旋转一圈。最后,我们使用 `requestAnimationFrame` 来循环调用 `animate` 函数,以实现动画效果。
阅读全文