最近看了文龙的博客,他的主页有几个线条动画构成的 “I AM MOFEI” 字样,我觉得特别好玩,起初我以为是用canvas画的,但是也没想明白这么复杂的线条路程应该怎么画。后来,他告诉我用SVG动画来做的,这就简单的在网上找了一下SVG的动画姿势,整理一下。
SVG基础形状
SVG 有一些预定义的形状元素,可被开发者使用和操作:
- 矩形
<rect> - 圆形
<circle> - 椭圆
<ellipse> - 线
<line> - 折线
<polyline> - 多边形
<polygon> - 路径
<path>
这些基础的我们可以自己查一查资料就能立马上手了,所以这里不会过多的去记录这些知识。今天重点来学习一下要如何让SVG动起来~
SVG动画元素
SVG动画有5个标签能实现,他们分别是:
<set><animate><animateColor><animateTransform><animateMotion>
顾名思义,这5个元素和CSS3动画类比一下,从名字看就能大概知道分别有什么功能。比如<animate>元素实现单属性的动画过渡效果,<animateColor>元素控制动画效果,不过此属性已经被废弃了,<animateTransform>元素的功能和CSS3中的transform变换一脉相承,自己体会便好,<animateMotion>元素可以让SVG各种图形沿着特定的<path>路径运动~多帅哦!
动画属性
未完待续!!
viewBox属性
<svg width="500" height="300"></svg>
有关viewBox属性问题的可以去看张鑫旭写的这篇文章,讲的更加详细:
理解SVG viewport,viewBox,preserveAspectRatio缩放 by 张鑫旭