就是减少浏览器在动画运行时所需要做的工作
渲染DOM的时候浏览器做的工作:
获取DOM后分割为多个图层,对每个图层的节点计算样式结果,为每个节点生成图形和位置,将每个节点绘制填充到图层位图中,图层作为纹理上传至GPU(图形处理器),符合多个图层到页面上生成最终屏幕图像
注意:如果图层中某个元素需要重绘,那么整个图层都需要重绘,比如一个图层包含很多节点,其中有gif图,gif图的每一帧都会重回整个图层的其他节点,然后生成最终的图层位图,所以需要强制gif图属于自己一个图层
1)可以通过transform修改节点的位置,旋转,大小等不会触发重布局,尽量不要使用height,width,margin,padding
2)单一的动画比较流畅,但是和其他动画杂糅在一起的时候就不那么流畅了,给动画编排合理的时间
3)利用translate3D()来创建一个3d图层,使得浏览器能够调用GPU来帮助渲染,可以消除动画在开始之前的图层创建事件,使动画尽快开始,但是创建过多也会导致图层崩溃