SVG动画用SMIL通过等4个核心标签实现,无需JS或CSS;支持现代浏览器,IE已淘汰;关键属性包括attributeName、from/to、dur、repeatCount、fill和begin。
SVG动画用SMIL做,核心就是往SVG元素里加这类标签,不写JavaScript、不依赖CSS也能动起来。现代浏览器(Chrome/Firefox/Safari)都支持,IE已淘汰,不用顾虑兼容性问题。
所有SMIL动画都靠这四个自闭合标签实现,直接嵌在目标SVG元素内部或作为子元素使用:
cy从92.8变成105.7;x、fill、opacity);transform类动画,比如旋转rotate、缩放scale、平移translate;以为例,这几个属性必须配齐才有效:
"cx"、"fill"、"r";from="0" to="100";s或ms,如"1.5s";"indefinite"表示无限循环;"freeze";"0.5s"或"click"触发。下面这段代码能让一个橙色方块绕中心匀速旋转360°,循环不停:
svg width="200" height="200" viewBox="0 0 200 200">cx、stroke-width),不能直接动CSS类名;attributeType已废弃,不用写,浏览器默认按XML处理;可共存于同一元素,互不干扰;linear缓动,避免ease
带来的额外计算;定义好路线,再用绑定。基本上就这些。写熟了几个标签和属性,SVG自己就能跑起来,轻量又可靠。