一知半解篇,后续有机会继续深入
CSS动画
通常指使用transition
实现的过渡动画和使用animation
来实现的关键帧动画。
其中,“简易补间动画”只需要提供起始和结束两个关键帧,并且是具有样式差异的两个关键帧,浏览器才能够完成样式差异比对并计算出对应的过渡动画。
JS动画
逐帧动画不再借助浏览器内部的插值机制来生成渲染画面,而是:将对应的逻辑在JavaScript
中实现,每一帧的状态都由JS
来计算生成,然后借助requestAnimationFrame
来将动画中的每一帧传递到渲染管线中。
你可以使用任何自定义的时间函数来执行动画,也可以同时方便地管理多个对象的多个不同动画。
对比
JS动画的进度也是全生命周期可感知的,你可以自由地实现动画暂停或者恢复,又或者是在动画执行到某一特定时刻时触发其他的逻辑。而CSS
动画只有animationstart
和animationend
等少量的事件,
很明显,JS
动画在细节控制能力、过程管理能力以及多对象管理能力上都要比纯CSS动画更强大。
**