svg描边动画收集

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>doc</title>
    <style>
        #line{
            animation: lineScroll 2s linear infinite;
        }
        @keyframes lineScroll{
            0%{
                stroke-dashoffset: 300;
            }
            100%{
                stroke-dashoffset: 0;
            }
        }
        #circle{
            transition: all 2s;
            stroke-dasharray:314,314;
            stroke-dashoffset:314;
        }
        svg:hover #circle{
            stroke-dashoffset:0;
        }
        #rect {
            stroke-width: 6px;
            fill: #fff;
            stroke: red;
            stroke-dasharray: 20;
            animation: path-animation 5s linear infinite;
        }        
        @keyframes path-animation {
            from {
                stroke-dashoffset: 100%; 
            }
            to {
                stroke-dashoffset: 0%; 
            } 
        }
        .star-path {
            fill:none;
            stroke-width:10;
            stroke: #d3dce6;
            stroke-linejoin:round;
            stroke-linecap:round;
        }
        .star-fill {
            fill:none;
            stroke-width:10;
            stroke: #ff7700;
            stroke-linejoin:round;
            stroke-linecap:round;
            stroke-dasharray:1340;
            stroke-dashoffset:0;
            animation: starFill 2s ease-out infinite;
        }
        @keyframes starFill {
            0% {
                stroke-dashoffset:1340;
            }
            100% {
                stroke-dashoffset:0;
            }
        }
    </style>
</head>

<body>
    <h1>svg</h1>
    <!-- 直线滚出 -->
    <svg >
      <line id="line" x1="30" y1="30" x2="300" y2="30" stroke-width="20" stroke="red" stroke-dasharray="300,320"/>
    </svg>
    <!-- 圆形路径滚出 -->
    <svg  width="200" height="200" viewBox="0 0 200 200">
        <circle id="circle" cx="100" cy="80" r="50"  fill="gray" stroke-width="5" stroke="green" />
    </svg>
    <!-- 矩形虚线框边框滚动动画 -->
    <svg height="100" width="300">
        <rect id="rect" height="100" width="300" />
    </svg>
    <!-- 竖直轨迹文字动画 -->
    <svg width="360" height="200" xmlns="http://www.w3.org/2000/svg">
        <text font-family="microsoft yahei" font-size="40" x="0" y="0" fill="#cd0000"><animateMotion path="M10,80 q100,120 120,20 q140,-50 160,0" begin="0s" dur="5s" rotate="0" repeatCount="indefinite"/>
        </text>
        <path d="M10,80 q100,120 120,20 q140,-50 160,0" stroke="#cd0000" stroke-width="2" fill="none" />
    </svg>
    <!-- 五角星全绘 -->
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewbox="-500 -500 2500 2500">
        <polygon points="-12 -69,-58 85,64 -14,-81 -14,41 85" class="star-path"></polygon>
        <polygon points="-12 -69,-58 85,64 -14,-81 -14,41 85" class="star-fill"></polygon>
    </svg>
    <!-- 横向文字循环滚动 -->
    <svg width="100%" height="250" xmlns="http://www.w3.org/2000/svg">
        <g>
            <text font-family="microsoft yahei,sans-serif" font-size="15" y="50" x="200" fill="#5F9F9F">内容2
                <animate attributeName="x" from="100%" to="-200" begin="0.5s" dur="10s" repeatCount="indefinite"></animate>
            </text>
        </g>
    </svg>
    <!-- 小球折线运动 -->
    <svg width="500" height="500">
        <path d="M100 150 L200 50 L300 150 L400 50 Z" stroke="#ccc" stroke-width="2" fill="none" />
        <circle r="20" x="150" y="0" style="fill:#336622;">  
            <animateMotion dur="3s" repeatCount="indefinite" rotate="auto" path="M100 150 L200 50 L300 150 L400 50 Z" />
        </circle>
    </svg>
    <!-- 小球曲线闭合运动 -->
    <svg width="120" height="120" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
        <!-- Draw the outline of the motion path in grey, along
        with 2 small circles at key points -->
        <path d="M10,110 A120,120 -45 0,1 110 10 A120,120 -45 0,1 10,110" stroke="lightgrey" stroke-width="2" fill="none" id="theMotionPath" />
        <circle cx="10" cy="110" r="3" fill="lightgrey" />
        <circle cx="110" cy="10" r="3" fill="lightgrey" />
        <!-- Red circle which will be moved along the motion path. -->
        <circle cx="" cy="" r="5" fill="red">
            <!-- Define the motion path animation -->
            <animateMotion dur="6s" repeatCount="indefinite">
                <mpath xlink:href="#theMotionPath" />
            </animateMotion>
        </circle>
    </svg>
    <!-- 图片曲线运动 -->
    <svg width="500" height="350" viewBox="0 0 500 350">
        <!--运动的路径轨迹-->
        <path style="fill:none;" stroke="#000" id="motionPath" d="M0.038,0c0,0-2.25,26.75,27.75,42.25c11.501,5.942,36.167,25.667,42.5,29.583
        c5.465,3.38,37.333,22.667-11.125,55.917" />
        <!--运动的图片-->
        <image id="car" transform="translate(-72,-72)" style="overflow:visible;" width="144px" height="144px" xlink:href="images/light.png">
            <animate attributeName="opacity" values="0;1;1;1;1;0" dur="3s" repeatCount="indefinite" />
        </image>
        <!--运动的相关参数  1、href链接到图片   mpath链接到路径-->
        <animateMotion xlink:href="#car" dur="3s" begin="0s" fill="freeze" repeatCount="indefinite">
            <mpath xlink:href="#motionPath" />
        </animateMotion>
    </svg>
</body>

</html>
原文地址:https://www.cnblogs.com/mengff/p/14945462.html