我目前正在制作一个幻灯片,可以在10秒后翻转幻灯片,并使用requestAnimationFrame来完成此操作。
然而,我对时间戳有一些问题。我希望跟踪时间戳值(这是没有问题的),当它达到一个超过10000 (10秒)的值时,将时间戳重置为0并继续运行。但是,当我尝试更改时间戳的值时,什么也没有发生。假设它是const?在每次调用时为performance.now()设置一个变量的行为也与我预期的不太一样。
想知道这个问题的最好解决方法是什么,也许是使用performance.now()?谢谢!
发布于 2018-08-28 06:40:16
当循环开始时,存储对它何时开始的引用。然后更新该变量,而不是尝试修改时间戳。
let start = null;
let loop = (timestamp) => {
if (!start) {
start = timestamp;
};
const progress = timestamp - start;
if (progress > 10000) {
console.log('loop', start);
start = timestamp;
}
requestAnimationFrame(loop)
};
requestAnimationFrame(loop);
https://stackoverflow.com/questions/52040914
复制相似问题