加载中
Spinner
UI 组件也叫:加载动画、转圈、Loading、Spin、菊花图
一句话:一个不停旋转的小图标,表示正在处理或等待数据,但不知道具体还要多久。
详细解释
加载中图标(俗称「转圈」「菊花」)用在等待时间不确定、一般只有一两秒的场合:点击提交后按钮里转圈、切换筛选条件后表格区域盖一层半透明遮罩加转圈、下拉刷新时顶部转圈。它只告诉用户「在处理,别急」,不告诉进度。
和 进度条 的区别:能算出完成比例时用进度条,算不出时用加载中。和 骨架屏 的区别:页面或卡片第一次加载、内容结构已知时,骨架屏先画出灰色轮廓,布局不会跳动;加载中适合局部刷新、按钮提交这种小范围等待。整页只放一个居中转圈、等所有数据回来才显示,是最常见也最让人焦虑的做法。
示例
灰度线框示意,只表达结构,不代表具体视觉风格。
怎么跟 AI 说
可以直接贴给 Cursor、Claude Code 等工具,把里面的业务内容换成你自己的。
点击「提交」后,按钮文字左侧出现一个 14px 的旋转图标,按钮变为不可点击,防止重复提交;表格切换筛选条件时,在表格区域上盖一层半透明白色遮罩,中间显示转圈和「加载中」,保留原有数据不清空。
结构与适用场景
结构描述
一个旋转的圆环或点阵图标,可附带「加载中」文字,局部加载时常叠加一层半透明遮罩。
适用场景
- 点击按钮提交后等待接口返回,时间通常在一两秒内
- 表格或卡片局部刷新,需要保留旧数据并提示正在更新
- 等待时长无法预估,也拿不到进度百分比时
不适用场景
- 页面首次加载且内容结构已知,用骨架屏能减少跳动
- 上传、导出等长任务能拿到真实进度,用进度条更让人安心
- 等待超过十秒,只转圈会让用户以为页面卡死了
常见坏用法
- 整个页面只放一个居中转圈,所有数据回来前一片空白
- 提交按钮转圈时仍可点击,导致重复提交
- 页面上同时出现五六个转圈,每个卡片各转各的
识别特征
- 一个缺了一段的圆环或一圈小圆点在旋转
- 常出现在按钮内文字左侧,或区块正中央
- 周围内容可能被一层半透明白色遮罩盖住
DOM 线索
插件本地识别时匹配的 CSS 选择器(标签、ARIA role、常见组件库 class)。
.ant-spin.el-loading-mask[class*="MuiCircularProgress-root"].t-loading.n-spin-body.spinner-border.spinner-grow.animate-spin