Composite: 将不同的层按正确的顺序绘制到屏幕上
要保证60FPS, 需要在 16ms 的时间内完成上述过程
使用 Chrome devtools 分析渲染性能
工欲善其事, 必先利其器....60FPS, 我们来分析一下每一帧的绘制过程
?...CSS 动画省略了 JavaScript 执行耗时, 只用了 0.49ms 的时间就完成了一帧的绘制
接下来思考一个问题, 如果主线程被阻塞了, CSS动画会有什么表现呢?...使用硬件加速后, 绘制过程将不再占用主线程, 直接在 GPU 上完成
因此, 点击按钮阻塞主线程, 也并不会影响动画, 你可以亲自试一试
使用 JS 动画
首先使用 setInterval 实现动画循环...动画, 仍需要在主线程上完成绘制过程
JS 动画, 用 requestAnimationFrame 会比 setInterval 效果更好
Element.animate() 可以用 JS 创建和 CSS