一知半解篇,后续有机会继续深入

CSS动画

通常指使用transition实现的过渡动画和使用animation来实现的关键帧动画。

其中,“简易补间动画”只需要提供起始和结束两个关键帧,并且是具有样式差异的两个关键帧,浏览器才能够完成样式差异比对并计算出对应的过渡动画。

简易补间动画: 屏幕录制2021-03-29 下午2.11.54.mov (180.45KB)

JS动画

逐帧动画不再借助浏览器内部的插值机制来生成渲染画面,而是:将对应的逻辑在JavaScript中实现,每一帧的状态都由JS来计算生成,然后借助requestAnimationFrame来将动画中的每一帧传递到渲染管线中。

你可以使用任何自定义的时间函数来执行动画,也可以同时方便地管理多个对象的多个不同动画。

对比

JS动画的进度也是全生命周期可感知的,你可以自由地实现动画暂停或者恢复,又或者是在动画执行到某一特定时刻时触发其他的逻辑。而CSS动画只有animationstartanimationend等少量的事件,

很明显,JS动画在细节控制能力、过程管理能力以及多对象管理能力上都要比纯CSS动画更强大。
**