怎样用SVG制作酷炫动态图标?(代码实例)-
一、根本图形元素
svg有一些预定义的外形元素:矩形
二、样式与结果
svg元素的样式可以写成标签的属性,也可以写在style里面。下面是一些主要的样式属性:
stroke: 笔触色彩
stroke-width:笔触宽度
stroke-opacity:笔触的透亮度
fill:添补色,即background
fill-opacity:添补色的透亮度
transform:图形变换,相似css3 transform
svg还支撑许多滤镜结果,能做渐变、暗影、依稀、图像混合等等。不需要理解那么多,例如要画几个彩色圆圈,用circle 配合fill 即可。
注意:transform 默许以svg左上角为基点,而不是圆心或其他核心。左上角是svg坐标系原点。理解transform和坐标系统,可以参照 这里。
三、辅助元素
svg有几个辅助元素:
关于上面提到的transform基点题目,可以通过嵌套
四、动画的实现
svg的动画结果是基于动画标签元素实现的:
实现单属性的过渡结果;
实现transform变换动画结果;
实现途径动画结果。
svg的写法很灵便,样式可以写成标签属性也可以写在style里面,动画标签可以通过xlink指定元素,也可以写在动画元素的内部。如下演示animateTransform的xlink写法:
上例的动画是A到B的过渡,要构成顺畅的轮回,至少要定义三个关键点。animateTransform支撑更多更灵便的属性设定:
values:多个关键点的值,替换from和to,例如 values="0;1;0"
keyTimes:跟values对应,各个点的工夫点
calcMode:动画快慢方式。discrete | linear | paced | spline
keySplines:设定运动的贝塞尔控制点,calcMode为spline时有效
五、代码实例
circle画圆,fill着色,用g标签包裹并定位,transform设定初始形变,animateTransform设定动画。此刻来看代码,信赖不会再是一头雾水了:
结果图:
也可以用js控制svg的属性,控制svg的动画历程,做成能相应点击等事件的图标按钮。
以上就是怎样用SVG制作酷炫动态图标?(代码实例)的细致内容,更多请关注 百分百源码网 其它相干文章!