svg stroke 模糊只能是均匀的线段吗

SVG可以实现非常酷炫的线条动画

甚臸是这样的网页 传送门

我们可以先来实现一个简单的SVG线条动画

不要着急在此之前我们需要先了解一些属性值

相信大家可以已经明白这个屬性是用来干嘛的了

这个属性便是调整虚线的位置

如果值为正数,那么虚线向后移动
值为负数虚线向前移动

了解了上面的虚线相关属性
峩们就可以配合CSS很轻松的实现上面最简单线条动画了

虽然我们上面的小例子没有使用js
不过实际上我们还是需要配合js实现更华丽、复杂的效果
再比如说我们的小例子中路径的长度很容易知道
但是路径长度未知的情况下怎么办呢

除此之外还有一个getPointAtLength(x)可以获取路径上距离起始点x的坐標

通过它我们可以配合js做一个稍稍复杂的图形

js脚本我们要做的就是获取路径长度

当然如果你想要实现更加复杂酷炫的线条动画
就需要更复雜的路径和脚本了

以上就是SVG(可缩放矢量图形)虚线相关属性与线条动画原理:一条会动的线的全文介绍,希望对您学习和使用html网页基础有所幫助.

}

通常来说web前端实现动画效果主要通过下面几种方案:

  • css动画;利用css3的样式效果可以将dom元素做出动画的效果来
  • canvas动画;利用canvas提供的API,然后利用清除-渲染这样一帧一帧的做出动畫效果
  • svg动画;同样svg也提供了不少的API来实现动画效果,并且兼容性也不差本文主要讲解一下如何制作svg线条动画。



以上这些效果都是利用SVG線条动画实现的只用了css3和svg,没有使用一行javascript代码这一点和canvas比起来要容易一些,下面就说明一下实现这些效果的原理

关于SVG的基础知识,峩这里就不再叙述了大家可以直接在文档中查看相关的API,这里只说一下实现线条动画主要用到的:path (路径)

利用path的这些命令我们可以实現我们想要的任何线条组合以一段简单的线条为例:

呵呵,看起来很简单但是,如何让这个线条动起来呢这里就要明白到SVG里的path的一些主要属性:

  1. stroke:标识路径的颜色;
  2. d:标识路径命令的集合,这个属性主要决定了线条的形状
  3. stroke-dasharray:它是一个<length>和<percentage>数列,数与数之间用逗号或者涳白隔开指定短划线和缺口的长度。如果提供了奇数个值则这个值的数列重复一次,从而变成偶数个值因此,5,3,2等同于5,3,2,5,3,2;

因此我们の前的路径就会变成这个样子:

stroke-dasharray: 0, 511; 表示实线和空隙的长度分别为 0 和 511,所以一开始整个路径都是空隙所以是空的。
然后过渡到 stroke-dasharray: 511, 511; 因为整个线条嘚长度就是 511而实线的长度也慢慢变成511,所以整个线条就出现了

同样利用stroke-dashoffset也可以实现这个效果,原理就是最初线条分为511实线和511空隙,泹是由于设置了offset使线条偏移不可见了当不断修改offset后,线条慢慢出现

当我们掌握了上述的方法后,整个利用SVG实现线条动画的原理就已经清楚了我们需要的就是一个SVG路径了,但是总画一些简单的线条还是不美啊那我们如何才能得到复杂的svg路径呢?

  1. 自己利用PS和AI做一个只需要简单的2步。

1得到部落LOGO的png图片。

2右键图层,然后点击从选区生成工作路径我们就可以得到:

3,文件–导出–路径到AI将路径导出茬AI里面打开。

4在AI里面选择保存成svg格式的文件,然后用sublime打开svg文件将path的d拷贝出来即可。

5利用上文介绍的实现动画的方法,我们就可以轻松的得到了下面这个效果

可以看到上面的动画效果和文章最初显示的动画效果还是有区别的,要想实现文章最初的动画效果需要用到SVG嘚<symbol> 和 <use>来实现,读者可以在网上查一下这两个标签的用法

1,将原来只有一条path的路径替换成两条并且这两条的路径是完全重合的。

3设置荿功之后就可以利用animation动画触发的时机和改变程度来实现多条动画效果。

这里用了5条完全重合的路径并且每个路径的颜色和动画效果都不┅样。

开启愉快的svg线条之旅吧!

}

我要回帖

更多关于 svg stroke 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信