CSS3实现动画加载效果

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>加载效果</title>
    <link rel="stylesheet" href="./style.css" />
  </head>
  <body>
  	<!-- 弹跳加载动画 -->
    <div class="bouncing-loader">
      <div class="bouncing-loader-item"></div>
      <div class="bouncing-loader-item"></div>
      <div class="bouncing-loader-item"></div>
    </div>

	<!-- 旋转加载动画 -->
    <div class="spin-loading">
      <div class="loading"></div>
    </div>

	<!-- 点点点加载动画 -->
    <span class="dot">正在加载中<span class="dotted"></span></span>
  </body>
</html>
css 复制代码
/* style.css */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  display: flex;
}
/* 弹跳加载效果 */
.bouncing-loader,
.spin-loading,
.dot {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 150px;
  border: 1px solid #efefef;
  margin: 3rem;
}
.bouncing-loader-item {
  width: 16px;
  height: 16px;
  margin: 3rem 0.2rem;
  background-color: #0b16f1;
  border-radius: 50%;
  animation: bouncingLoader 0.6s infinite alternate;
}
.bouncing-loader-item:nth-child(2) {
  animation-delay: 0.2s;
}
.bouncing-loader-item:nth-child(3) {
  animation-delay: 0.4s;
}
@keyframes bouncingLoader {
  to {
    opacity: 0.1;
    transform: translate3d(0, -10px, 0);
  }
}

/* 旋转动画效果 */
.spin-loading .loading {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 100%;
  /* 锥形渐变 */
  background-image: conic-gradient(#0b16f1, 30%, #fff);
  /* 使用蒙版将中间变为透明 */
  -webkit-mask-image: radial-gradient(closest-side, transparent 80%, black 80%);
  /* 开启动画 */
  animation: spin 1s linear infinite reverse;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* ...动画效果 */
.dotted {
  display: inline-block;
  width: 20px;
}
.dotted::after {
  content: '';
  animation: dotted 2s infinite;
}
@keyframes dotted {
  0% {
    content: '...';
  }
  25% {
    content: '';
  }
  50% {
    content: '.';
  }
  75% {
    content: '..';
  }
  100% {
    content: '...';
  }
}
相关推荐
mldong4 分钟前
给流程设计器加国际化,我没引 vue-i18n
前端·javascript·vue.js
IMPYLH4 分钟前
HTML 的 <strong> 元素
前端·html
开开心心就好6 小时前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法
Setsuna_F_Seiei9 小时前
前端转型 Agent 开发 05 之 Agent Hooks 与 Checkpointer(让 Agent 从全自动转变人为可掌控)
前端·agent·ai编程
百万蹄蹄向前冲10 小时前
风扇转了一晚上MVP专家团翻车事故
前端·人工智能
默_笙10 小时前
🏛 给 AI 配一间办公室:Harness Engineering 六大模块与它的实现
前端·javascript
linux_cfan12 小时前
videojs v10 源代码系列解读:14 · 谓词守卫:在运行时安全地调用能力
前端·javascript·音视频
kyriewen12 小时前
我扒了 10,221 条 JD:腾讯技术岗 75% 在要 AI
前端·人工智能·ai编程
郑州光合科技余经理13 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
IT_陈寒14 小时前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端