JavaScript动画核心是requestAnimationFrame实现60fps平滑更新,优先改transform/opacity触发GPU加速,封装play/pause/seek方法控制状态,配合anime.js等轻量库按需使用。
用JavaScript创建动画效果,核心是控制元素的样式属性随时间变化,常用方法是结合 requestAnimationFrame 实现平滑、高性能的逐帧更新,替代低效的 setTimeout 或 setInterval。
它让浏览器在下一次重绘前执行回调,和屏幕刷新率同步(通常60fps),更流畅也更省资源。
requestAnimationFrame
cancelAnimationFrame 停止动画,避免内存泄漏或意外持续运行performance.now() 可做时间敏感的动画(比如缓动、暂停续播)单纯移动不够,常需控制开始、暂停、恢复、跳转到某时刻等行为。
play()、pause()、seek(t) 方法,便于复用纯 JS 改 left/top 触发重排,性能差;改 transform 和 opacity 则走合成层,GPU 加速。
element.style.transform = 'translateX(100px) scale(1.2)'
will-change: transform 提前提示浏览器优化(但别滥用)不重复造轮子,小项目可直接用成熟工具。
基本上就这些。关键不是代码多酷,而是动画是否响应及时、不卡顿、可维护。从 requestAnimationFrame 入手,再按需叠加控制和优化,效果
就很扎实。