欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 【开源宝藏】30天学会CSS - DAY7 第七课 CSS 关键帧打造Preloader 追逐动画

【开源宝藏】30天学会CSS - DAY7 第七课 CSS 关键帧打造Preloader 追逐动画

2025/4/1 0:10:55 来源:https://blog.csdn.net/qq_41520636/article/details/146488977  浏览:    关键词:【开源宝藏】30天学会CSS - DAY7 第七课 CSS 关键帧打造Preloader 追逐动画

你的代码实现了一个 方形轨迹预加载动画(Preloader Animation),其中三个 span 元素沿着一个 2×2 网格 轨迹循环移动。现在,我们将 拆解核心实现步骤,让你能一步步理解并调整动画效果。


在这里插入图片描述

第 0 步:项目概览

你的代码包括:

preloader-animation/├── index.html   # HTML 结构└── style.css    # CSS 样式与动画

动画效果

  1. 三个小方块(白色) 会沿着一个 150×150 px 的方形路径 依次运动。
  2. 每个方块有时间间隔 (animation-delay),因此它们不会同时移动,而是像“追逐”一样依次运行。
  3. 背景色为紫色 (#bd2ae2),小方块的移动形成视觉上的“旋转追逐”效果。

第 1 步:HTML 结构

打开 index.html,可以看到一个 .loader 容器,包含 3 个 <span>,它们将用来进行动画。

<!DOCTYPE html>
<html lang="pt-br">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="style.css"><title>Preloader Animation</title>
</head>
<body><div class="loader"><span></span>  <!-- 第1个方块 --><span></span>  <!-- 第2个方块 --><span></span>  <!-- 第3个方块 --></div>
</body>
</html>

HTML 解析

  • <div class="loader">:动画的容器,所有 span 都在其中运行。
  • 三个 <span>:分别代表 三个方块,每个都使用 animation-delay 让它们 依次运动

第 2 步:基础 CSS

2.1 背景 & 居中

style.css 里,body 采用 flexbox 居中显示:

body {margin: 0;padding: 0;background: #bd2ae2; /* 紫色背景 */display: flex;align-items: center;justify-content: center;height: 100vh; /* 全屏 */
}
  • display: flex; align-items: center; justify-content: center;:让 .loader 垂直 & 水平居中

2.2 .loader 容器

.loader {width: 150px;height: 150px;position: relative;
}
  • width: 150px; height: 150px;:定义了动画运动的区域,即 span 运动的轨迹将在 150×150 px 的范围内。
  • position: relative;:用于让 span 进行绝对定位

2.3 方块样式

span {position: absolute;width: 50px;height: 50px;background-color: white;border-radius: 4px;animation: chase 2s linear infinite;
}
  • width: 50px; height: 50px;:每个 span 大小固定 50×50 px。
  • position: absolute;:使它们相对 .loader 进行绝对定位,可以自由控制 topleft
  • border-radius: 4px;:让方块稍微圆润
  • animation: chase 2s linear infinite;:绑定 chase 动画,2 秒一轮,线性匀速运动,循环播放

第 3 步:动画关键帧

关键部分——让 span 沿着 2×2 网格轨迹 运动:

@keyframes chase {0% { top: 0; left: 0; }12.5% { top: 0; left: 50%; }25% { top: 0; left: 50%; }37.5% { top: 50%; left: 50%; }50% { top: 50%; left: 50%; }62.5% { top: 50% ; left: 0; }75% { top: 50% ; left: 0; }82.5% { top: 0; left: 0; }100% { top: 0; left: 0; }
}

如何理解这个轨迹

小方块沿着 150×150 px 的区域,在 4 个角落 依次停留:

  1. 0%:起点(左上角)。
  2. 12.5% - 25%:向 右上角 运动,并停留一会。
  3. 37.5% - 50%:向 右下角 运动,并停留。
  4. 62.5% - 75%:向 左下角 运动,并停留。
  5. 82.5% - 100%:返回 左上角,然后继续循环。

第 4 步:设置动画时间延迟

span:nth-child(2) {animation-delay: 0.7s;
}span:nth-child(1) {animation-delay: 1.4s;
}

作用

  • nth-child(2) 让第二个方块比第一个 晚 0.7 秒 开始。
  • nth-child(1) 让第三个方块比第一个 晚 1.4 秒 开始。

结果

  • 第 1 个方块:立即开始运动。
  • 第 2 个方块:0.7 秒后才开始 跟随第 1 个方块运动
  • 第 3 个方块:1.4 秒后才开始 跟随第 2 个方块运动

最终,这三个方块会依次沿着 4 个角落运动,形成 追逐的视觉效果


第 5 步:优化与拓展

  1. 调整运动轨迹

    • 如果想让方块沿 圆形路径 运动,可以改用 transform: translate(X, Y); 来计算圆周坐标。
  2. 改变颜色

    span:nth-child(1) { background-color: #ff3d00; }
    span:nth-child(2) { background-color: #ffcc00; }
    span:nth-child(3) { background-color: #4caf50; }
    
    • 让每个方块使用 不同颜色,增加视觉变化。
  3. 修改大小与间距

    .loader {width: 200px;height: 200px;
    }
    span {width: 40px;height: 40px;
    }
    
    • .loader 更大,同时缩小 span,看起来更流畅。

最终效果

  1. 背景紫色,居中的 .loader 容器。
  2. 三个白色小方块 依次运动,形成 追逐动画
  3. 每个方块间隔 0.7 秒启动,制造流畅的运动感。

总结

  • absolute + animation + keyframes 结合实现 轨迹运动
  • animation-delay 让方块 依次启动,形成流畅追逐效果。
  • box-model + flexbox 保证 全屏居中

你可以自由调整轨迹、颜色、间隔时间,创造更多 酷炫的 Preloader 动画! 🚀

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词