轨道环加载动画(Orbit Ring Loader 卫星环绕旋转)

CSSJS 许可:自研原创

深色星空背景下的轨道环加载动画,卫星沿轨道环绕、内外虚线环反向旋转、核心脉冲呼吸,支持换向、调速与三套配色,纯 CSS 实现零依赖,适合后台同步与数据加载场景。

效果演示(真实可交互)

演示区默认深色星空底,卫星沿轨道匀速环绕;点击「⇄ 换向」可让卫星反方向飞行;速度滑块 0.3× - 2.5× 实时生效;紫 / 青 / 金三套配色覆盖不同的品牌气质。

正在同步数据…

配色
速度 1.0×

完整代码

HTML 结构:

<div class="or-rings">
  <span class="or-ring or-outer"></span>          <!-- 外圈虚线环 -->
  <span class="or-ring or-inner"></span>          <!-- 内圈细环 -->
  <span class="or-orbit"><b class="or-planet"></b></span>  <!-- 轨道 + 卫星 -->
  <span class="or-core"><b></b></span>            <!-- 核心脉冲点 -->
</div>

CSS 核心:

.or-rings { --or-dur: 2s; --or-color: #8b7cf6; position: relative; width: 150px; height: 150px; }

/* 外圈:虚线环慢速自转 */
.or-outer { inset: 0; border: 2px dashed rgba(139,124,246,.55); border-radius: 50%;
            animation: or-spin calc(var(--or-dur) * 2.2) linear infinite; }

/* 卫星轨道:整个轨道层旋转,卫星放在顶部,自然沿圆周飞行 */
.or-orbit { inset: 8px; border-radius: 50%;
            animation: or-spin var(--or-dur) linear infinite; }
.or-planet { position: absolute; top: -7px; left: 50%; width: 14px; height: 14px;
             margin-left: -7px; border-radius: 50%;
             background: radial-gradient(circle at 32% 30%, #fff, var(--or-color) 58%);
             box-shadow: 0 0 14px var(--or-color); }

/* 核心:呼吸脉冲 */
.or-core { inset: 56px; border-radius: 50%; display: grid; place-items: center;
           background: rgba(139,124,246,.18); }
.or-core b { width: 16px; height: 16px; border-radius: 50%; background: var(--or-color);
             animation: or-pulse calc(var(--or-dur) / 2) ease-in-out infinite; }

@keyframes or-spin { to { transform: rotate(360deg); } }
@keyframes or-pulse { 0%, 100% { transform: scale(1); opacity: .7; }
                      50% { transform: scale(1.5); opacity: 1; } }

JS(换向): 给轨道层设置 orbit.style.animationDirection = 'reverse' 即可一键反向。

参数说明

参数位置说明
轨道周期--or-dur卫星绕一圈的时长,默认 2s
主色--or-color卫星、核心与虚线环颜色,可整体换肤
内环色--or-color2内圈细环与背景光晕的次色
环间距.or-inner 的 inset控制内环与外环的疏密
卫星大小.or-planet 的宽高建议 10-18px,太大遮挡轨道
旋转方向animation-directionnormal / reverse,各环可独立配置

兼容性与性能

常见问题

Q: 想让多颗卫星同轨环绕怎么做? 复制多个 .or-orbit 层,各自设置不同的 animation-delay(如 0s / 0.5s),卫星就会均匀分布在轨道上。

Q: 轨道环看起来有点空,怎么更丰富? 在 .or-orbit 内叠加一个反向旋转的细环(animation-direction: reverse),再加 2-3 颗小星星点(纯 box-shadow 即可)增强层次。

Q: 页面熄屏/后台时动画还耗电吗? 浏览器会自动暂停后台标签页的 CSS 动画,无需额外处理;若在单页应用内持续显示,建议任务完成后移除该节点。

Q: 换向后卫星轨迹和虚线环方向不一致,会乱吗? 不会,各环独立动画互不影响;刻意让内外环反向是常见的视觉手法,反而更有”齿轮咬合”的机械感。

许可与来源

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

✍️ 作者与审核