zoukankan      html  css  js  c++  java
  • 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的路径动画,动画执行之后看到真实内容的效果了~
     
     
     
  • 相关阅读:
    HDU 4619 Warm up 2 (多校)
    深入浅出Node.js (9)
    HDU 1106 排序(排序)
    字符串相关心得
    HDU 2547 无剑无我(数学)
    HDU 2549 壮志难酬(字符串,处理小数点)
    HDU 2551 竹青遍野(循环,水)
    HDU 2552 三足鼎立(数学函数)
    HDU 2555 陷阱(模拟,结构体数组)
    HDU 2561 第二小整数(排序,水)
  • 原文地址:https://www.cnblogs.com/moreyear/p/9100439.html
Copyright © 2011-2022 走看看