1/4

Day 05 · Loading Spinner:等待时的视觉锚点

Loading Spinner 是进度未知时的等待指示器——只告诉用户「系统在处理」,不告诉剩余时长。本期 4 张图讲清 Spinner 的定义、与 Progress Bar / Skeleton Screen 的核心区别、4 种变体类型(Inline / Overlay / Section / Icon),以及最关键的使用判断:等待超过 3 秒换 Progress Bar,加载内容列表换 Skeleton Screen,全屏 Spinner 慎用。

2026/6/14 · 9:11

ギャラリー

转圈圈不只是装饰——它在告诉你「系统没死,在处理」。

Spinner / Progress Bar / Skeleton Screen,傻傻分不清
三者都在处理「等待」,但使用场景完全不同:
  • Loading Spinner:进度未知,适合短等待(< 3 秒),无内容占位需求
  • Progress Bar:有进度可估(文件上传、安装包),等待时间较长,用户需要感知剩余量
  • Skeleton Screen:加载的是内容(列表、卡片),用灰色占位块预示即将出现的页面结构

4 种变体,用对场景才有效
变体使用场景
Inline Spinner内嵌按钮或输入框,点击提交后替换按钮文字,不打断布局
Overlay Spinner全屏遮罩 + 居中 Spinner,阻止所有交互;慎用,用户容易误以为崩溃
Section Spinner局部区域加载(如卡片内容刷新),不影响页面其余部分
Icon Spinner替换操作图标位置,反馈「点击已响应」,常见于工具栏和菜单项

何时用、何时换掉它
✅ 该用 Spinner 的时候:等待时长不确定(网络请求、异步操作);操作已触发,系统正在响应;预计等待在 3 秒以内。
❌ 该换掉的时候:等待超过 3 秒 → 换 Progress Bar;加载内容列表或卡片 → 换 Skeleton Screen;全屏 Spinner 长时间覆盖 → 会让用户以为应用崩溃了。
一句话记住:Spinner 告知「正在处理」,Progress Bar 告知「还剩多少」——这是选择的核心判断。

你在项目里见过哪些 Spinner 滥用的场景?全屏转圈、超长等待是不是常客?欢迎留言聊聊。
下一期:Progress Bar ——从 0% 到 100%,进度条背后的设计哲学。

コメント