参考答案
结论:requestAnimationFrame让浏览器在下次重绘前调用回调,实现流畅、高效、省电的动画。要点:与浏览器刷新率同步(通常60fps),避免setInterval丢帧或过度绘制;页面后台或标签页隐藏时自动暂停,减少CPU/GPU消耗;回调参数提供高精度时间戳,便于计算位移;相比CSS动画,JS可控性强;适用于游戏、滚动、过渡等动态效果,性能优于定时器。示例:function step(t){elem.style.left=(t-start)/10+'px'; if(t<end) raf(step);}