CSS+SVG结果页图标动画

CSS+SVG结果页图标动画,点击查看效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS+SVG结果页图标动画</title>
    <style>
        body {
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
        }
        h2 {
            font-family: Arial, Helvetica, sans-serif;
            font-size: 36px;
            margin-top: 40px;
            color: #333;
            text-align: center;
            opacity: 0;
        }
        input[type="checkbox"]:checked ~ h2 {
            animation: .6s title ease-in-out;
            animation-fill-mode: forwards;
            animation-delay: 1.2s;
        }
        .circle {
            stroke-dasharray: 1194;
            stroke-dashoffset: 1194;
        }
        input[type="checkbox"]:checked + svg .circle {
            animation: circle 1s ease-in-out;
            animation-fill-mode: forwards;
        }
        .tick {
            stroke-dasharray: 350;
            stroke-dashoffset: 350;
        }
        input[type="checkbox"]:checked + svg .tick {
            animation: tick 1s ease-in-out;
            animation-fill-mode: forwards;
            animation-delay: .95s;
        }
        @keyframes circle {
            from {
                stroke-dashoffset: 1194;
            }
            to {
                stroke-dashoffset: 2388;
            }
        }
        @keyframes tick {
            from {
                stroke-dashoffset: 350;
            }
            to {
                stroke-dashoffset: 0;
            }
        }
        @keyframes title {
            from {
                opacity: 0;
            }
            to {
                opacity: 1;
            }
        }
    </style>
</head>
<body>
    <div>
        <input type="checkbox" checked style="display: none;">
        <svg width="400" height="400">
            <circle class="circle" fill="none" stroke="#68e534" stroke-width="20" cx="200" cy="200" r="190" stroke-linecap="round" transform="rotate(-90 200 200)"></circle>
            <polyline class="tick" fill="none" stroke="#68e534" stroke-width="24" points="88, 214 173, 284 304, 138" stroke-linecap="round" stroke-linejoin="round"></polyline>
        </svg>

        <h2>支付成功</h2>
    </div>
</body>
</html>
赞(0) 打赏

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫