css中的动画特性可以用js实现,那为什么还要用css来实现?
总结:CSS 动画的:
-
渲染成本小(硬件加速GPU、『自然降级』)
-
执行效率高(避免回流重绘、预扫描加载快)
详细如下:
1、硬件加速GPU:浏览器对CSS动画专门做了优化,例如 硬件加速(GPU加速)
2、『自然降级 』:对于帧速表现不好的低版本浏览器,CSS3可以做到自然降级,而 JS 则需要撰写额外代码
3、避免回流重绘:『CSS 动画可以在 **合成线程** 中完成』,而 js 写的动画需要在 主线程 执行;CSS 动画只涉及到变换(transform)、透明度(opacity)等属性时,直接在 合成层 操作,有效避免了 回流和重绘 带来的性能损耗
- 补充:渲染进程分为主线程和合成线程 + 预解析线程
4、预扫描,加载快:CSS 可以预扫描下载和解析,无需等待 js 下载就可以开始动画