进度条动画合集(6 款加载进度条 CSS 源码)

CSSJS 许可:自研原创

6 款自研进度条动画:不确定流动、条纹滚动、渐变扫光、圆点跑动、SVG 环形进度、数字计数,纯 CSS + 少量原生 JS,复制即用。

效果演示(真实可交互)

演示区共 6 款进度条:前 4 款纯 CSS 即可运行;第 5 款用 SVG 圆环实现环形进度;第 6 款数字计数用原生 JS 驱动,点击「重放」可重新观看动画。

① 不确定进度条(无限流动)

② 条纹进度条(50%)

③ 渐变扫光(70%)

④ 圆点跑动(加载中)

⑤ 环形进度(75%)

75%

⑥ 数字计数(点击重放)

0%

完整代码

① 不确定进度条(适合未知耗时的加载,如接口请求):

<div class="track"><div class="indet"></div></div>
.track { height: 10px; border-radius: 5px; background: #eef1f8; overflow: hidden; position: relative; }
.indet { position: absolute; top: 0; left: 0; width: 38%; height: 100%; border-radius: 5px;
  background: linear-gradient(90deg, #6c8cff, #b388ff);
  animation: run 1.2s ease-in-out infinite; }
@keyframes run { 0% { left: -38%; } 100% { left: 100%; } }

⑥ 数字计数进度条(JS 驱动,easeOutCubic 缓动):

<div class="track"><div class="fill count" id="bar"></div></div>
<span id="num">0%</span>
.count { background: linear-gradient(90deg, #f472b6, #fb923c); transition: width .12s linear; }
const bar = document.getElementById('bar');
const num = document.getElementById('num');
const target = 85, duration = 1600, t0 = performance.now();
function step(now) {
  const p = Math.min((now - t0) / duration, 1);
  const v = Math.round((1 - Math.pow(1 - p, 3)) * target);
  bar.style.width = v + '%';
  num.textContent = v + '%';
  if (p < 1) requestAnimationFrame(step);
}
requestAnimationFrame(step);

②③④⑤ 款(条纹滚动、渐变扫光、圆点跑动、SVG 环形)的完整样式见上方演示区 .pb-* 系列,结构与 ① 相同:外层 .pb-track 轨道 + 内部填充块,复制对应类与 @keyframes 即可。

参数说明

参数位置说明
目标百分比style="width:50%"②③ 直接改内联宽度;⑥ 改 JS 中的 target
动画速度animation: ... 1.2s数字越小越快;⑥ 改 duration 毫秒数
颜色background / stroke替换成品牌主题色
缓动函数cubic-bezier(...) / easeOutCubic控制进度条快慢节奏
圆环粗细stroke-width: 8改环形进度的视觉粗细

兼容性与性能

常见问题

Q: 能商用吗? 可以。本组件为粤喵自研,免费商用无需署名。

Q: 怎么把不确定进度条改成确定进度? 给 .indet 换成固定宽度填充块(.pb-fill),再通过 JS 更新 style.width 即可,动画部分删掉。

Q: 环形进度想改成 30% 怎么调? 圆环周长约 264(2π×42),30% 的偏移量 = 264 × 0.7 ≈ 185,把 stroke-dashoffset 的结束值改为 185。

Q: 进度条在低端手机上卡顿怎么办? 优先保证 transform 动画(①②④),避免大面积渐变与 filter;必要时降低动画元素数量与更新频率(⑥ 可改 30fps)。

许可与来源

  • 许可证:自研原创 —— 粤喵自研原创,可免费用于个人与商业项目,无需署名。查看来源公示与许可清单
  • 来源:粤喵团队原创自研(从效果思路到代码实现均为独立完成,未直接复制第三方代码)
  • 首次发布:2026-09-01 · 最近更新:2026-09-01
  • 修改日志:2026-09-01 首次发布;2026-09-13 补充许可证与来源标注、复制按钮说明与法务页入口
  • 纠错:联系页面 / min@cactus.asia,2 个工作日内核实处理

常见问题

这个组件可以商用吗?

可以。本组件为粤喵自研原创,可免费用于个人和商业项目,无需署名。

浏览器兼容性如何?

支持所有现代浏览器(Chrome / Firefox / Safari / Edge 最新版本)。旧版 IE 不支持 CSS 动画相关特性。

怎么修改动画参数?

直接调整 CSS 中的 animation-duration(时长)、animation-timing-function(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核