插件窝 干货文章 什么是requestAnimationFrame?

什么是requestAnimationFrame?

Frame li animations requestAnimation 381    来源:    2024-10-20

什么是 requestAnimationFrame?

  • 用于创建与屏幕刷新率同步的动画的 JavaScript 方法
  • 它告诉浏览器在下次重绘之前调用指定的函数

使用 requestAnimationFrame 的好处?

  • 通过让浏览器处理时序,确保流畅的性能并降低跳帧的风险1
  • 根据设备性能自动调整帧率,无需手动控制2
  • 当选项卡不可见时它会自动暂停,节省资源并防止不必要的动画 3

与setInterval比较

  • 按照指定的时间间隔执行,而不考虑浏览器是否准备好渲染下一帧,可能导致跳帧1
  • 以固定速率运行,不适应用户的设备 2
  • 无论选项卡是否可见都继续运行,这会浪费 CPU 周期,并可能导致电源使用效率低下和性能问题 3

与 CSS 动画比较

requestAnimationFrame CSS animations
Requires writing JavaScript for each frame of the animation Implement by defining CSS properties, run automatically. No need to manage frame updates
Automatically adjust the frame rate, pauses when the tab is not visible Runs independently of the JavaScript engine. CSS animations may not pause as efficiently when the tab is not visible
Ideal for complex animations that involve multiple elements or need custom control over each frame Best for simple, declarative animations like fading, scaling, rotating, and moving elements

就是这样!感谢您阅读本文。下次见!