跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

SVG动画怎么做 SMIL animate标签用法

SVG动画用标签基于SMIL实现,轻量原生、无需JS;推荐嵌套在目标元素内,关键属性包括attributeName、from/to/values、dur、repeatCount、begin;复杂变换应使用;支持事件触发与JS控制;现代浏览器兼容良好,IE全系不支持。 SVG动画用
标签实现,核心是通过 SMIL(Synchronized Multimedia Integration Language)在 SVG 元素内部定义属性随时间变化的行为。它轻量、原生支持、无需 JS 就能驱动动画,适合图标动效、 数据可视化 过渡等场景。 animate 标签必须写在目标元素内部或同级
不能单独存在,必须作为 SVG 元素的子元素(推荐),或与目标元素同级并用
href
指向它(需注意 浏览器 兼容性)。最稳妥写法是直接嵌套:
上面例子让圆的半径从 20 动画到 40,循环播放。关键属性说明: attributeName :指定要动画的 SVG 属性名,如
cx
、
fill
、
opacity
、
transform
(注意:
transform
需配合
attributeType="XML"
或改用
) from / to / values :定义起始值、结束值或关键帧序列(
values="20;30;40;30;20"
) dur :动画持续时间,单位可为
s
或
ms
repeatCount :重复次数,
indefinite
表示无限循环 begin :动画开始时机,支持
0s
、
click
、
button1.click
、
an1.end
(依赖其他动画)等 位移、旋转、缩放建议用 animateTransform 直接对
transform
属性做
容易出错(尤其多变换叠加时)。推荐使用专用标签
:
type 可选
translate
、
scale
、
rotate
、
skewX
/
skewY
;
from
和
to
格式按 type 变化,例如
rotate
是
角度 cx cy
,
translate
是
x y
。 Comet AI 浏览器 下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。 下载 支持事件触发和暂停/恢复控制 动画可响应用户交互,比如点击开始、悬停暂停: 加
begin="click"
实现点击触发动画 用
配合事件修改静态属性(如改变 fill 后再启动动画) 通过 JS 调用 SVG 元素的
beginElement()
、
endElement()
、
pauseAnimations()
、
unpauseAnimations()
控制播放状态 例如:
document.querySelector('circle').beginElement();
可手动启动一次动画。 兼容性注意:现代浏览器支持良好,但 IE 全系不支持 Chrome、Firefox、Safari(含 iOS)、Edge(Chromium 版)均支持 SMIL。IE 所有版本不支持,若需兼容 IE,应降级为 CSS 动画(
@keyframes + transform
)或 JS 方案(如 GSAP、Snap. svg )。不过目前绝大多数项目已可忽略 IE。

相关文章