1. SMIL动画语法
SMIL(Synchronized Multimedia Integration Language)是SVG内置的动画语言,支持时间轴控制。
- 关键特性:
<animate>
元素实现属性渐变begin
和dur
控制动画时间repeatCount
设置循环次数fill
定义动画结束后状态
👉 示例:
<rect x="0" y="0" width="100" height="100"> <animate attributeName="fill" values="red;blue;green" dur="3s" repeatCount="indefinite" /> </rect>
2. CSS动画与过渡
通过CSS实现SVG动画,更灵活且兼容性更好。
- 常用属性:
transition
:渐变效果(如颜色、尺寸)animation
:复杂时间轴(如关键帧)transform
:旋转/缩放/平移opacity
:透明度变化
👉 提示:使用@keyframes
可创建更复杂的动态效果!
3. JavaScript动画库
借助JavaScript库(如 GSAP)可实现交互式动画。
- 优势:
- 动态控制动画逻辑
- 支持物理模拟(如弹性、阻力)
- 可与用户交互绑定
👉 示例代码:
gsap.to(svgElement, { duration: 1, x: 200, rotation: 360, ease: "power2" });
4. 高级技巧与最佳实践
- 路径动画:使用
<path>
元素配合animateMotion
实现轨迹运动 - 缓动函数:自定义
ease
值(如ease-in-out
)优化动画流畅度 - 性能优化:避免过度复杂的动画影响渲染效率
- 响应式设计:通过媒体查询适配不同屏幕尺寸
👉 想了解更多?可访问 SVG动画教程 深入学习 📚
5. 实用工具推荐
- SVGOMG:SVG动画优化工具
- Anima:可视化动画生成器(含中文文档)
- Framer Motion:现代动画框架(需配合React使用)