点击查看html编辑器说明文档

Loading 动画 - 无限符号edit icon

|
|
Fork(复制)
|
|
提交反馈
嵌入
设置
下载
HTML
格式化
支持Emmet,输入 p 后按 Tab键试试吧!
<head> ...
展开
</head>
<body>
            
            <!-- SVG 动画容器:创建一个无限循环的车辆移动动画 -->
<svg class="container" x="0px" y="0px" viewBox="0 0 55 23.1" height="23.1" width="55" preserveAspectRatio='xMidYMid meet'>
    <!-- 轨道路径:定义车辆运动的轨迹,使用较浅的颜色显示 -->
    <path class="track" fill="none" stroke-width="4" pathlength="100" d="M26.7,12.2c3.5,3.4,7.4,7.8,12.7,7.8c5.5,0,9.6-4.4,9.6-9.5C49,5,45.1,1,39.8,1c-5.5,0-9.5,4.2-13.1,7.8l-3.4,3.3c-3.6,3.6-7.6,7.8-13.1,7.8C4.9,20,1,16,1,10.5C1,5.4,5.1,1,10.6,1c5.3,0,9.2,4.5,12.7,7.8L26.7,12.2z" />
    <!-- 奔跑的“火车”:使用相同的路径但添加了动画效果 -->
    <path class="car" fill="none" stroke-width="4" pathlength="100" d="M26.7,12.2c3.5,3.4,7.4,7.8,12.7,7.8c5.5,0,9.6-4.4,9.6-9.5C49,5,45.1,1,39.8,1c-5.5,0-9.5,4.2-13.1,7.8l-3.4,3.3c-3.6,3.6-7.6,7.8-13.1,7.8C4.9,20,1,16,1,10.5C1,5.4,5.1,1,10.6,1c5.3,0,9.2,4.5,12.7,7.8L26.7,12.2z" />
</svg>
        
</body>
CSS
格式化
            
            /* 设置页面基本样式,使内容居中显示 */
body {
    background: #282c34;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 容器样式:定义动画的基本参数 */
.container {
    --uib-size: 55px;            /* 控制整体大小 */
    --uib-color: #c7f93e;        /* 定义动画颜色 */
    --uib-speed: 1.3s;           /* 控制动画速度 */
    --uib-bg-opacity: .1;        /* 背景轨道透明度 */
    height: calc(var(--uib-size) * (2.1 / 5));
    width: var(--uib-size);
    transform-origin: center;
    overflow: visible;
}

/* 移动车辆的样式:定义运动效果 */
.car {
    fill: none;
    stroke: var(--uib-color);
    stroke-dasharray: 15, 85;     /* 创建虚线效果,15为实线长度,85为间隔 */
    stroke-dashoffset: 0;
    stroke-linecap: round;
    animation: travel var(--uib-speed) linear infinite;
    will-change: stroke-dasharray, stroke-dashoffset;
    transition: stroke 0.5s ease;
}

/* 轨道样式:显示车辆运动的路径 */
.track {
    stroke: var(--uib-color);
    opacity: var(--uib-bg-opacity);
}

/* 定义车辆运动的关键帧动画 */
@keyframes travel {
    0% {
        stroke-dashoffset: 0;     /* 动画开始位置 */
    }

    100% {
        stroke-dashoffset: 100;   /* 动画结束位置 */
    }
}
        
JS
格式化
            
            
        
预览
控制台