前端动画
gif 动画
-
定义:GIF 文件的数据是一种基于 LZW 算法的连续色调的无损压缩格式,gif 格式的特点是一个 gif 文件可以存多幅彩色图像,当数据逐幅读出并展示都在屏幕上,就可以构成一个简单的动画;最高支持 256 种颜色,由于这种特性,GIF 比较适用于色彩较少的图片,比如页面卡通 icon、标志等等;
-
优点:
- 制作的成本很低;
- 兼容性好;
- 方便开发使用;
-
缺点:
- 画质上:色彩支持少,图像毛边严重;
- 交互上:不能控制动画的播放暂停,没有灵活性;
- 大小上:由于是无损压缩,每帧被完整的保存下来,导致文件很大;
-
效果展示
CSS 动画
css3 的 transition 过渡动画
css3 的 animation 动画
JavaScript 动画
-
JS 动画通过定时修改元素样式实现,支持复杂的逻辑控制 (如根据用户交互、数据动态调整动画),核心方式有:setTimeout/setInterval、requestAnimationFrame;
-
JS 动画特点:
- 优点:完全可控,支持物理引擎、条件判断、动态参数;
- 缺点:若逻辑复杂,可能导致性能下降 (需优化);
-
案例:
SVG 描边动画
-
SVG (可缩放矢量图形) 内置动画标签,适合矢量图形 (如图标、路径、图形元素) 的动画,支持路径动画、形状变形等;
-
核心 SVG 动画标签:
标签 作用 <animate> 基础属性动画 (如位置、颜色) <animateTransform> 变换动画 (旋转、缩放、位移) <animateMotion> 路径动画 (沿自定义路径移动) -
SVG 动画特点:
- 优点:矢量无损缩放,支持复杂路径动画,可直接修改 SVG 节点;
- 缺点:仅适用于 SVG 图形,兼容性需注意 (IE9+);
-
案例:
Canvas 动画
选型建议
| 动画场景 | 推荐方式 |
|---|---|
| 简单状态切换 (hover、显隐) | CSS Transition |
| 循环 / 多阶段静态动画 | CSS Animation |
| 复杂逻辑控制 (物理效果、交互) | JS + requestAnimationFrame |
| 矢量图形 / 图标动画 | SVG 动画 |
| 游戏 / 粒子 / 数据可视化 | Canvas 动画 |
| 快速实现复杂预制动画 | Animate.css/GSAP/Lottie |
动画案例
3D加载动画
霓虹灯
无限滚动
购物车抛物线动画
loading 动画
🌿 撤销操作
上一篇