CSS动画和JS动画主要的不同是:
1,功能涵盖面,JS比CSS3大
定义动画过程的@keyframes
不支持递归定义,如果有多种类似的动画过程,需要调节多个参数来生成的话,将会有很大的冗余,而JS则天然可以以一套函数实现多个不同的动画过程
时间尺度上,@keyframes
的动画粒度粗,而JS的动画粒度控制可以很细
CSS3动画里被支持的时间函数非常少,不够灵活
以现有的接口,CSS3动画无法做到支持两个以上的状态转化
2,实现/重构难度不一,CSS3比JS更简单,性能调优方向固定
3,对于帧速表现不好的低版本浏览器,CSS3可以做到自然降级,而JS则需要撰写额外代码
4,CSS动画有天然事件支持,JS则需要自己写事件
5,CSS3有兼容性问题,而JS大多时候没有兼容性问题