使用css3制作齿轮loading动画效果

yizhihongxing

下面是制作齿轮loading动画效果的完整攻略。

1. 准备工作

在制作之前首先需要进行准备工作:

  • 确定齿轮的大小和数量
  • 选择合适的颜色和样式
  • 编写 HTML 结构

在 HTML 结构中,我们需要定义一个外层盒子和多个齿轮的盒子。代码如下:

<div class="gear-group">
  <div class="gear"></div>
  <div class="gear"></div>
  <div class="gear"></div>
  <div class="gear"></div>
</div>

2. 利用 CSS3 制作齿轮

利用 CSS3 制作齿轮的过程主要涉及到以下几点:

  • 制作齿轮的框架
  • 定义齿轮的样式
  • 利用 transform 和动画制作齿轮的旋转和停止

制作齿轮的框架

首先为齿轮的外层盒子设置宽度和高度,以及相对或绝对定位。

.gear-group {
  position: relative;
  width: 100px;
  height: 100px;
}

接着为每个齿轮的盒子设置宽度和高度,并利用定位使其在外层盒子中居中。同时为了让齿轮的动画效果更佳明显,我们还可以为每个齿轮的盒子添加背景颜色、边框样式等。

.gear {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50px;
  height: 50px;
  margin: -25px 0 0 -25px;
  border: 2px solid #333;
  border-radius: 50%;
  background: #fff;
}

定义齿轮的样式

在定义每个齿轮的样式时,我们需要进行以下几个步骤:

  • 定义齿轮的齿数
  • 定义齿轮的齿的样式
  • 定义齿轮的轮毂样式

第一步,定义齿轮的齿数并利用 border-radius 制作齿的形状。同时可以为齿轮定义不同的 z-index 值,以便于后面的层叠效果。

.gear:nth-child(1) {
  border-bottom-left-radius: 50px;
  border-top-left-radius: 50px;
  z-index: 4;
}
.gear:nth-child(2) {
  border-top-right-radius: 50px;
  border-top-left-radius: 50px;
  z-index: 3;
}
.gear:nth-child(3) {
  border-bottom-right-radius: 50px;
  border-top-right-radius: 50px;
  z-index: 2;
}
.gear:nth-child(4) {
  border-bottom-left-radius: 50px;
  border-bottom-right-radius: 50px;
  z-index: 1;
}
.gear::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  border-top: 25px solid transparent;
  border-left: 14px solid #fff;
  border-bottom: 25px solid transparent;
  transform: rotate(45deg);
}
.gear::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-top: 25px solid transparent;
  border-right: 14px solid #fff;
  border-bottom: 25px solid transparent;
  transform: rotate(-45deg);
}

第二步,定义齿轮的轮毂样式,可以利用上面定义的 z-index 值进行层叠效果的制作。

.gear:before {
  position: absolute;
  content: "";
  width: 14px;
  height: 50px;
  background: #ccc;
  left: 50%;
  margin-left: -7px;
  top: -2px;
  z-index: -1;
}

利用 transform 和动画制作齿轮的旋转和停止

接下来利用 transform 和动画制作齿轮的旋转和停止。

首先为每个齿轮设置相应的动画名称和动画延迟时间。

.gear:nth-child(1) {
  animation: rotate 4s infinite linear;
  animation-delay: 0s;
}
.gear:nth-child(2) {
  animation: rotate 4s infinite linear;
  animation-delay: -2s;
}
.gear:nth-child(3) {
  animation: rotate 4s infinite linear;
  animation-delay: -4s;
}
.gear:nth-child(4) {
  animation: rotate 4s infinite linear;
  animation-delay: -6s;
}

接着我们需要定义 rotate 这个动画名称的具体过程。在动画中我们需要利用 transform 实现齿轮的旋转和停止。具体做法如下:

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(180deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

3. 完整代码示例

下面是一个完整的代码示例:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>齿轮loading动画效果</title>
    <style>
      .gear-group {
        position: relative;
        width: 100px;
        height: 100px;
      }
      .gear {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 50px;
        height: 50px;
        margin: -25px 0 0 -25px;
        border: 2px solid #333;
        border-radius: 50%;
        background: #fff;
      }
      .gear:nth-child(1) {
        border-bottom-left-radius: 50px;
        border-top-left-radius: 50px;
        z-index: 4;
        animation: rotate 4s infinite linear;
        animation-delay: 0s;
      }
      .gear:nth-child(2) {
        border-top-right-radius: 50px;
        border-top-left-radius: 50px;
        z-index: 3;
        animation: rotate 4s infinite linear;
        animation-delay: -2s;
      }
      .gear:nth-child(3) {
        border-bottom-right-radius: 50px;
        border-top-right-radius: 50px;
        z-index: 2;
        animation: rotate 4s infinite linear;
        animation-delay: -4s;
      }
      .gear:nth-child(4) {
        border-bottom-left-radius: 50px;
        border-bottom-right-radius: 50px;
        z-index: 1;
        animation: rotate 4s infinite linear;
        animation-delay: -6s;
      }
      .gear::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 0;
        height: 0;
        border-top: 25px solid transparent;
        border-left: 14px solid #fff;
        border-bottom: 25px solid transparent;
        transform: rotate(45deg);
      }
      .gear::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        width: 0;
        height: 0;
        border-top: 25px solid transparent;
        border-right: 14px solid #fff;
        border-bottom: 25px solid transparent;
        transform: rotate(-45deg);
      }
      .gear:before {
        position: absolute;
        content: "";
        width: 14px;
        height: 50px;
        background: #ccc;
        left: 50%;
        margin-left: -7px;
        top: -2px;
        z-index: -1;
      }
      @keyframes rotate {
        0% {
          transform: rotate(0deg);
        }
        50% {
          transform: rotate(180deg);
        }
        100% {
          transform: rotate(360deg);
        }
      }
    </style>
  </head>
  <body>
    <div class="gear-group">
      <div class="gear"></div>
      <div class="gear"></div>
      <div class="gear"></div>
      <div class="gear"></div>
    </div>
  </body>
</html>

4. 示例说明

下面给出两个制作齿轮loading动画效果的示例说明:

示例一

我要制作一组 6 个齿轮的 loading 动画效果,具体步骤如下:

  1. 制作齿轮的框架,确定齿轮的大小和数量;
  2. 根据齿轮的样式定义具体的 CSS 样式;
  3. 利用 transform 和动画制作齿轮的旋转和停止;
  4. 在 HTML 结构中添加额外的齿轮盒子。

示例二

我要对现有的 4 个齿轮的 loading 动画进行优化,把齿轮改为黄色和蓝色,同时让齿轮旋转速度变快,具体步骤如下:

  1. 在齿轮的样式定义中更改背景颜色;
  2. 调整动画的延迟和旋转速度。

以上就是“使用 CSS3 制作齿轮 loading 动画效果”的完整攻略,希望能够对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用css3制作齿轮loading动画效果 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • BootStrap Tooltip插件源码解析

    BootStrap Tooltip插件源码解析 Bootstrap Tooltip插件是一个简单易用,且对用户友好的Web开发工具,其基于jQuery javascript library实现,可以加快你的Web开发速度。 Tooltip插件的基本用法 在需要使用Tooltip的HTML代码元素上添加”data-toggle”和 “data-placemen…

    css 2023年6月10日
    00
  • jquery给图片添加鼠标经过时的边框效果

    下面我将为您讲解如何使用jQuery给图片添加鼠标经过时的边框效果。 1. 引入jQuery库 在代码中使用jQuery库前,需要先引入该库。可以通过以下CDN链接引入: <script src="https://cdn.staticfile.org/jquery/3.6.0/jquery.min.js"></scrip…

    css 2023年6月10日
    00
  • DIV+CSS 滑动门技术的简单例子

    下面我将详细讲解“DIV+CSS滑动门技术的简单例子”: 1.什么是滑动门技术 滑动门技术是一种在网页设计和开发中常用的技术,它基于DIV和CSS实现,是一种用于美化按钮和链接的技术。它的最大优点是可以减少图片的使用,从而提高网站的加载速度。 2.滑动门技术的实现原理 滑动门技术的实现原理是利用3个DIV组成的结构,分别用于左边的背景、右边的背景以及中间的标…

    css 2023年6月10日
    00
  • CSS轮廓设置方法详解

    CSS轮廓(outline)是一种可以在元素周围创建可定制的线条型边框的属性,足以完全独立于元素自带的border属性。与 CSS边框不同,轮廓不影响元素的大小和定位。轮廓还支持在轮廓上应用阴影和图像等效果。 基本语法 CSS轮廓如下所示: outline: [outline-color] [outline-style] [outline-width] 其中…

    Web开发基础 2023年3月20日
    00
  • css仿word首字下沉效果示例

    下面我将详细讲解“CSS仿Word首字下沉效果”的完整攻略。 1. 安装必要的软件 在开始进行CSS仿Word首字下沉效果之前,我们需要安装一个文本编辑器,例如Sublime Text或者Visual Studio Code。在编辑器中安装Live Server插件,让我们可以实时在浏览器中查看代码效果。 2. 添加HTML代码 首先,我们需要添加HTML代…

    css 2023年6月10日
    00
  • ExtJs使用总结(非常详细)

    下面我将详细讲解“ExtJs使用总结(非常详细)”的完整攻略。 一、初识ExtJs 介绍了ExtJs是什么,包括MVVM架构、组件化、丰富的UI组件等 强调了ExtJs的学习曲线很陡峭,需要花费大量的时间学习 二、ExtJs组件基础 介绍了ExtJs的组件基础知识,包括容器组件、表单组件、布局等 通过示例代码演示了如何创建容器组件和表单组件 示例一:创建容器…

    css 2023年6月10日
    00
  • CSS实现背景渐变和自动全屏的代码

    下面是详细讲解 CSS 实现背景渐变和自动全屏的代码攻略: 背景渐变 背景渐变可以用 CSS 的 background-image 属性实现。具体来说,可以使用 linear-gradient() 函数来创建线性渐变或 radial-gradient() 函数来创建径向渐变。 以下是一个创建红色到蓝色线性渐变背景的示例代码: background-image…

    css 2023年6月9日
    00
  • CSS3实现炫酷的切片式图片轮播效果

    下面是“CSS3实现炫酷的切片式图片轮播效果”的完整攻略。 一、实现思路 利用CSS3的@keyframes创建动画关键帧。 使用transform属性实现图片翻转和平移。 利用position: absolute和z-index属性实现图片层叠和切片效果。 使用animation属性激活动画关键帧。 二、代码实现 以下是一个基础版的切片式图片轮播效果。 H…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部