渐变微光加载动画(Gradient Shimmer 流光进度条)

CSSJS 许可:自研原创

渐变流光加载条,三色渐变循环流动叠加高光扫过,视觉轻盈现代,支持三套渐变主题、速度调节与暂停,纯 CSS 实现零依赖,适合内容生成、AI 响应等待等场景。

效果演示(真实可交互)

渐变条内层三色渐变持续横向流动,外层一道白色高光周期扫过,双层叠加出”微光”质感。海蓝 / 落日 / 森林三套渐变一键切换,速度滑块实时控制流动节奏。

正在生成内容…

渐变
速度 1.0×

完整代码

HTML 结构:

<div class="gs-bar">
  <span class="gs-fill"></span>      <!-- 渐变流动层 -->
  <span class="gs-shimmer"></span>   <!-- 高光扫过层 -->
</div>

CSS 核心:

.gs-bar {
  --gs-dur: 2.4s;
  --gs-a: #5ad8ff; --gs-b: #6c8cff; --gs-c: #b388ff;
  position: relative; width: 320px; height: 22px;
  border-radius: 999px; overflow: hidden;
  background: #e3e8f5;               /* 轨道底色 */
}

/* 渐变流动层:背景放大 3 倍后平移,形成连续流动 */
.gs-fill {
  position: absolute; inset: 0; border-radius: 999px;
  background: linear-gradient(90deg, var(--gs-a), var(--gs-b), var(--gs-c), var(--gs-a));
  background-size: 300% 100%;
  animation: gs-flow var(--gs-dur) linear infinite;
}
@keyframes gs-flow { to { background-position: 300% 0; } }

/* 高光扫过层:白亮斜带从右向左掠过 */
.gs-shimmer {
  position: absolute; inset: 0; border-radius: 999px;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.85) 50%, transparent 60%);
  background-size: 250% 100%;
  animation: gs-sweep calc(var(--gs-dur) * 1.2) ease-in-out infinite;
}
@keyframes gs-sweep { 0% { background-position: 120% 0; } 100% { background-position: -120% 0; } }

JS(调速): stage.style.setProperty('--gs-dur', (2.4 / speed).toFixed(2) + 's'),两层面板共用同一变量,节奏始终同步。

参数说明

参数位置说明
流动周期--gs-dur渐变循环一圈的时长,默认 2.4s
渐变色--gs-a / --gs-b / --gs-c三色渐变,改任意一色即换主题
高光亮度rgba(255,255,255,.85)降低透明度可减弱扫光存在感
条尺寸.gs-bar 的宽高高度 10-26px 均合适,圆角随高度调整
轨道底色background: #e3e8f5用比页面背景略深的灰色,对比清晰
扫光速率calc(var(--gs-dur) * 1.2)让扫光略慢于渐变,避免视觉打架

兼容性与性能

常见问题

Q: 渐变看起来是跳动的而不是流动的? 检查 background-size 是否设为 300% 100%,且 keyframes 终点 background-position 与尺寸倍数一致(300% 对应 300% 0),否则首尾无法无缝衔接。

Q: 想要一条不确定宽度的加载条(Indeterminate)? 把 .gs-fill 改为 width: 40% 并在容器内左右往返移动(animation: gs-slide 配合 left 或 translateX),其余不变。

Q: 高光扫过太刺眼怎么办? 降低高光层透明度,或把渐变角度从 105° 调到 120°,让亮带更细更长,观感更柔和。

Q: 能用在深色背景上吗? 可以,给 .gs-bar 的轨道底色换成深灰(如 #232a4d),三色渐变本身亮度足够,深浅背景都适用。

许可与来源

  • 许可证:自研原创 —— 粤喵自研原创,可免费用于个人与商业项目,无需署名。查看来源公示与许可清单
  • 来源:粤喵团队原创自研(从效果思路到代码实现均为独立完成,未直接复制第三方代码)
  • 首次发布: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(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核