当前位置:首页 > CSS

css制作加载动画

2026-04-02 02:34:32CSS

使用纯CSS制作加载动画

通过CSS的@keyframesanimation属性可以创建多种加载动画效果,以下列举几种常见实现方式:

旋转动画(适合图标加载)

css制作加载动画

.loader {
  width: 40px;
  height: 40px;
  border: 4px solid #f3f3f3;
  border-top: 4px solid #3498db;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

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

点状加载动画

.dot-loader {
  display: flex;
  justify-content: center;
  gap: 8px;
}
.dot-loader div {
  width: 12px;
  height: 12px;
  background-color: #3498db;
  border-radius: 50%;
  animation: bounce 1.4s infinite ease-in-out;
}
.dot-loader div:nth-child(2) {
  animation-delay: 0.2s;
}
.dot-loader div:nth-child(3) {
  animation-delay: 0.4s;
}
@keyframes bounce {
  0%, 80%, 100% { transform: scale(0); }
  40% { transform: scale(1); }
}

进度条加载动画

css制作加载动画

.progress-loader {
  width: 100%;
  height: 4px;
  background-color: #e0e0e0;
  overflow: hidden;
}
.progress-loader::after {
  content: '';
  display: block;
  width: 20%;
  height: 100%;
  background-color: #4285f4;
  animation: progress 2s linear infinite;
}
@keyframes progress {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(500%); }
}

高级技巧:使用CSS变量控制动画

通过CSS变量可以动态调整动画参数:

:root {
  --loader-color: #3498db;
  --loader-size: 40px;
  --loader-speed: 1s;
}
.custom-loader {
  width: var(--loader-size);
  height: var(--loader-size);
  border: 4px solid rgba(0,0,0,0.1);
  border-left-color: var(--loader-color);
  border-radius: 50%;
  animation: rotate var(--loader-speed) linear infinite;
}

响应式加载动画设计

结合媒体查询适配不同设备:

@media (max-width: 600px) {
  .loader {
    width: 30px;
    height: 30px;
    border-width: 3px;
  }
  .dot-loader div {
    width: 10px;
    height: 10px;
  }
}

性能优化建议

  • 优先使用transformopacity属性触发硬件加速
  • 避免过多使用box-shadow等耗性能的属性
  • 对重复使用的动画考虑使用will-change: transform;
  • 简化关键帧数量,通常3-5个关键帧足够表现流畅动画

这些方法均无需JavaScript即可实现,通过调整颜色、尺寸和动画时长等参数可快速定制不同风格的加载效果。

标签: 加载动画
分享给朋友:

相关文章

vue实现ios动画

vue实现ios动画

Vue 实现 iOS 动画的方法 使用 CSS Transition 和 Vue 的过渡系统 Vue 提供了内置的过渡系统,可以通过 <transition> 组件实现动画效果。结合 CS…

js实现图片的懒加载

js实现图片的懒加载

实现图片懒加载的基本原理 懒加载的核心思想是延迟加载非视口内的图片,当用户滚动页面时再动态加载即将进入视口的图片资源。这能显著减少页面初始加载时的网络请求和带宽消耗。 Intersection Ob…

vue实现加载动画

vue实现加载动画

Vue 实现加载动画的方法 在 Vue 中实现加载动画可以通过多种方式完成,以下是一些常见的方法: 使用 CSS 动画 通过 CSS 定义动画效果,结合 Vue 的动态类绑定实现加载动画。以下是一个…

vue实现无限加载

vue实现无限加载

Vue 实现无限加载的方法 无限加载(Infinite Scroll)是一种常见的用户体验优化方式,适用于数据量较大的列表或瀑布流场景。以下是几种在 Vue 中实现无限加载的常用方法。 监听滚动事件…

vue动画实现跑动

vue动画实现跑动

Vue动画实现跑动效果 在Vue中实现跑动动画可以通过多种方式完成,包括使用Vue的过渡系统、CSS动画或第三方动画库。以下是几种常见的实现方法: 使用Vue过渡和CSS动画 定义CSS关键帧动画来…

vue实现列表动画

vue实现列表动画

Vue 列表动画的实现方法 Vue 提供了内置的过渡和动画系统,可以通过 <transition-group> 组件实现列表动画效果。以下是几种常见的实现方式: 使用 <trans…