svg 线条动画浅尝

看了别人网站的svg动画觉得非常舒服,自己尝试实现一下
效果如下:

图片描述

实现需要明白2个关于svg的css属性

1. stroke-dasharray

stroke-dasharray: <percentage> | <length> | inherit
数与数之间用逗号或者空白隔开,指定短划线和缺口的长度。如stroke-dasharray:30 20;,效果如下:

clipboard.png
注:可视区域模拟svg的大小方便接下来理解动画

stroke-dasharray:50;如果为一个值那么短划线和缺口一样长

clipboard.png

2. stroke-dashoffset

stroke-dashoffset: <percentage> | <length> | inherit
指定了dash模式到路径开始的距离,也就是偏移量
如果不写stroke-dasharray属性,stroke-dashoffset属性就算写出花也看不到效果的。
stroke-dasharray:50;stroke-dashoffset:25px效果如下

clipboard.png

这条线向左移动了25px

再试一下
stroke-dasharray:200; stroke-dashoffset:0px

clipboard.png

然后动画让stroke-dashoffset的值由0变为200动画就出来了

clipboard.png
具体效果点击这里

3.demo地址

最后附上开篇放大镜的地址
放大镜

总结

动画其实是由stroke-dashoffset的值变化实现的,每个线条动画其实是无限个缺口其中的一个,只不过其他的都在svg外面被隐藏起来了。获得每条path或者其他线条的长度(可以找设计要(捂脸)),把stroke-dasharraystroke-dashoffset的值都设置为线条长度,这时候线条会消失,再用动画把stroke-dashoffset设置为0就ok了。

本篇如能对您有所帮助,实在是感到荣幸。如有不合理之处也请大家多多指点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值