来自MDN,我有以下内容:
一定要使用第一个参数(或者其他获取当前时间的方法)来计算动画在一帧中的进度,否则在高刷新率屏幕上,动画将运行得更快。
那么,我可以假设在144Hz的显示器上,requestAnimationFrame
的运行速度可以超过60fps吗?
来自MDN,我有以下内容:
一定要使用第一个参数(或者其他获取当前时间的方法)来计算动画在一帧中的进度,否则在高刷新率屏幕上,动画将运行得更快。
那么,我可以假设在144Hz的显示器上,requestAnimationFrame
的运行速度可以超过60fps吗?
完全正确。
这里有一个简单的例子可以衡量:
let i = 0;
const start = Date.now();
const stop = start + 5000;
function raf() {
requestAnimationFrame(() => {
const now = Date.now();
if (now < stop){
i++;
raf();
}else{
const elapsedSeconds = (now - start) / 1000;
console.log('Frame rate is: %f fps', i / elapsedSeconds);
}
});
}
console.log('Testing frame rate...')
raf();
在我的电脑上,它显示为143.7401178670024。我正在使用144HZ的显示器。
requestAnimationFrame
。 - João Paulo