弹跳点加载动画(Bouncing Dots Loader 纯 CSS 实现)

CSSJS 许可:自研原创

纯 CSS 弹跳点加载动画,5 个圆点错落弹跳自带阴影与透明度变化,支持速度调节、暂停与三套配色,零依赖复制即用,适合页面加载与按钮提交等待场景。

效果演示(真实可交互)

拖动「速度」滑块可实时改变弹跳节奏(0.3× - 2.5×);点击「暂停」可冻结动画,便于在浏览器里检查样式;三套配色(蓝 / 橙 / 绿)一键切换,观察不同品牌色下的表现。

正在加载,请稍候…

配色
速度 1.0×

完整代码

HTML 结构:

<div class="bd-dots">
  <i></i><i></i><i></i><i></i><i></i>
</div>

CSS 核心(弹跳动画 + 错落延迟):

.bd-dots {
  --bd-dur: 1s;            /* 一个完整弹跳周期 */
  --bd-color: #6c8cff;     /* 圆点主色 */
  display: flex; gap: 10px;
}
.bd-dots i {
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--bd-color);
  animation: bd-bounce var(--bd-dur) ease-in-out infinite;
}
/* 每个点错开 0.1 个周期,形成波浪 */
.bd-dots i:nth-child(1) { animation-delay: calc(var(--bd-dur) * -0.4); }
.bd-dots i:nth-child(2) { animation-delay: calc(var(--bd-dur) * -0.3); }
.bd-dots i:nth-child(3) { animation-delay: calc(var(--bd-dur) * -0.2); }
.bd-dots i:nth-child(4) { animation-delay: calc(var(--bd-dur) * -0.1); }

@keyframes bd-bounce {
  0%, 60%, 100% { transform: translateY(0) scale(1); opacity: .45; }
  30%           { transform: translateY(-26px) scale(1.12); opacity: 1; }
}

JS(可选,速度与暂停控制):

// 速度:周期 = 基准 / 倍率
stage.style.setProperty('--bd-dur', (1 / speed).toFixed(2) + 's');
// 暂停:给容器加类,统一冻结所有圆点
dots.classList.toggle('paused', paused); // .paused i { animation-play-state: paused }

参数说明

参数位置说明
弹跳周期--bd-dur一个完整弹跳的时长,默认 1s,数字越大越慢
圆点颜色--bd-color通过 CSS 变量换色,也可直接改 background
圆点数量HTML 中 <i> 个数3-7 个效果都自然,超过 7 个显拥挤
弹跳高度translateY(-26px)数值越大跳得越高,注意留足容器高度
错落间隔animation-delay建议步进为周期的 0.1 倍,波浪感最佳
高光/阴影box-shadow用 color-mix 跟随主色,增强立体感

兼容性与性能

常见问题

Q: 想让弹跳方向变成左右横跳怎么办? 把 keyframes 里的 translateY 换成 translateX 即可,其余逻辑完全不用动,错落延迟同样生效。

Q: 加载完成后怎么移除动画? 直接删除容器节点或加 display: none;如果希望平滑淡出,可先给容器加 opacity: 0 过渡,300ms 后再移除。

Q: 圆点在弱网/慢速环境还跳得这么快,会不会显得很急? 建议把默认周期设为 1.2s 左右,并在数据到达前的骨架阶段使用;也可以在切换页面时用 JS 统一放大 --bd-dur。

Q: 可以商用吗? 可以。本组件为粤喵自研,MIT 友好的免费商用协议,无需署名,改色改尺寸随意。

许可与来源

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

✍️ 作者与审核