Skip to content

CSS动画和JS实现的动画分别有哪些优缺点?

参考答案:

CSS动画

优点

  • 浏览器可以对动画进行优化
  • 代码相对简单,性能调优方向固定
  • 对于帧速表现不好的低版本浏览器,CSS3可以做到自然降级,而JS则需要撰写额外代码

缺点

  • 运行过程控制较弱,无法附加事件绑定回调函数
  • 代码冗长,想用CSS实现稍微复杂一点动画,最后CSS代码都会变得非常笨重

JS动画

优点

  • 控制能力很强, 可以在动画播放过程中对动画进行控制:开始、暂停、回放、终止、取消都是可以做到的。
  • 动画效果比css3动画丰富,有些动画效果,比如曲线运动,冲击闪烁,视差滚动效果,只有js动画才能完成
  • CSS3有兼容性问题,而JS大多时候没有兼容性问题

缺点

  • 代码的复杂度高于CSS动画
  • JavaScript在浏览器的主线程中运行,而主线程中还有其它需要运行的JavaScript脚本、样式计算、布局、绘制任务等,对其干扰导致线程可能出现阻塞,从而造成丢帧的情况

题目要点:

CSS 动画

优点

  1. 简单易用:通过声明式的方式直接在 CSS 中定义动画。
  2. 性能好:CSS 动画可以由浏览器优化,通常利用 GPU 加速。
  3. 易于维护:动画与样式定义在一起,方便管理和复用。
  4. 无需 JavaScript:不需要编写额外的 JavaScript 代码来控制动画。

缺点

  1. 控制性差:难以实现复杂的交互和状态控制。
  2. 功能有限:CSS 动画功能相对简单,难以实现复杂的动画效果。
  3. 兼容性问题:一些旧浏览器对 CSS 动画的支持不佳。

JS 实现动画

优点

  1. 灵活性高:JavaScript 可以控制动画的每一个细节,实现复杂的逻辑和交互。
  2. 功能强大:可以结合其他 JavaScript 库或框架,实现几乎任何类型的动画。
  3. 控制性强:可以根据用户交互或程序状态动态控制动画。

缺点

  1. 性能问题:JavaScript 动画可能受到 JavaScript 执行效率和浏览器渲染性能的影响。
  2. 实现复杂:需要编写更多的代码来控制动画的开始、结束和变化。
  3. 依赖 JavaScript:在没有 JavaScript 支持的环境中,动画将无法工作。

考察重点

  • 理解:CSS 动画和 JavaScript 动画的基本实现方式。
  • 选择:根据项目需求和环境选择合适的动画实现方式。
  • 优化:了解如何优化 CSS 和 JS 动画的性能和用户体验。