SVG描边动画实现过程

准备工具:Adobe AI+PS

1、确定SVG画布的大小,在PS中切出需要描边效果的区域,以此区域的大小做为SVG容器的大小。
 
2、将PS中切好的图片直接拖拽到AI中
 
 
3、使用AI中的钢笔工具勾勒出SVG路径,注意要将前景色置透明,否则路径包围的区域将会被前景色填充。使用钢笔工具可适当多添加些锚点,以保证路径的精确。
 
 
 
4、笔画多的路径需要分开绘制,以上图中的“留”字为栗子
 
 
 
5、重复上面步骤,将所有添加描边效果的部位勾勒出来
 
 
6、在AI中将钢笔工具勾勒好的路径保存成 SVG 格式      File → Save As  选择SVG格式保存
 
 
 
 
 
 
 
 
 
7、打开刚刚保存好的 SVG 文件,就得到了 SVG 的路径代码
 
 
 
 
8、将获得到的路径代码按需稍加修改,其中描边的颜色和描边的宽度可在AI中绘制的时候设置好,也可在生成的代码中按需修改。
 
 

9、CSS3 SVG描边动画及实现原理,依赖两个属性stroke-dasharray和stroke-dashoffset
stroke-dasharray 表示虚线描边。可选值为:none, dasharray, inherit. 其中,none表示不是虚线;dasharray为一个逗号或空格分隔的数值列表。表示各个虚线端的长度。可以是固定的长度值,也可以是百分比值;inherit表继承。
stroke-dashoffset 表示虚线的起始偏移。可选值为:percentage, length, inherit. 百分比值,长度值,继承。
原理就是将描边设置虚线,stroke-dasharray的数值与路径长度一致或者大于路径长度即可,需尝试确定,路径长的话就给个大点的值,路径短就给个小点的值,效果满意即可。
然后再设置路径的偏移量stroke-dashoffset与stroke-dasharray的值一样的大即可,然后添加定义好的动画,将偏移量从样式中设置好的数值过渡到0,就实现了描边的效果。

 
/**********SVG描边动画**********/

@include keyframes(dash, webkit moz ms spec){
    to {
        stroke-dashoffset: 0;
    }
}
/**********SVG描边动画**********/
path,rect{
    stroke-dasharray: 400;
    stroke-dashoffset: 400;
    @include animation(dash 1.5s ease-in-out 1);
    &.p-long{
        stroke-dasharray: 2000;
        stroke-dashoffset: 2000;
        @include animation(dash 1.5s ease-in-out 1);
    }
}

10、描边效果

 

 

11、后续处理,通过 js 控制SVG效果执行完成之后将包裹着SVG的DIV隐藏起来,再将正常的设计稿样子显示出来。
这样就实现了先是看到SVG的路径动画,动画执行之后看到真实内容的效果了~
 
 
 
posted @ 2018-05-28 15:34  前端小鬼头  阅读(382)  评论(0编辑  收藏  举报