跳到正文

骨架屏

Skeleton

初级通用

骨架屏(Skeleton)是内容加载期间显示的页面轮廓,用灰色块模拟即将出现的图片、标题或列表。它让你在等待接口返回时看出内容大致会排在哪里,减少页面突然跳出的感觉。

你可能会说:「页面等数据时别一片空白,能不能先显示和最终内容位置差不多的灰色轮廓?」

动手看看

产品动态了解最近的功能更新
产品更新 · 第 1 期新功能与使用技巧 · 阅读约 3 分钟
产品更新 · 第 2 期新功能与使用技巧 · 阅读约 3 分钟
产品更新 · 第 3 期新功能与使用技巧 · 阅读约 3 分钟
加载时显示
内容出现方式

切换加载方式,再点重播:内容会在设定的等待时间后出现。留意等待期间,列表的位置能不能提前看出来。

骨架块先占住图标、标题和摘要的位置;数据回来时,真实内容在原处填入,页面不必突然长出三行。

短暂渐显能让骨架到内容的交接更柔和,但不应该拖慢读者开始阅读。

要点

  1. 1

    先画结构再填真实内容

    比如你做商品列表,图片和价格还没返回时,可以先显示图片方块和几条文字横条。数据到了再替换成真实卡片,用户就能预先看出页面结构。

  2. 2

    轮廓要贴近最终布局

    如果真实页面是一列文章,骨架却画成四列卡片,加载完成时内容还是会明显跳动。我们通常按实际组件的宽度、数量和间距来画,同时考虑窄屏下的布局。

  3. 3

    加载结束要有明确去向

    骨架屏只代表内容正在等待,不代表请求一定会成功。拿到数据后换成内容;请求失败就显示错误和重试入口;结果为空就显示空状态,这样用户不会一直盯着灰块。

容易混淆的地方

骨架屏和旋转加载指示器都能表示等待,但骨架屏暗示将出现什么内容,适合布局可预见的区域;旋转图标只说明操作还在进行。它也不是输入框里的占位文字:占位文字提示你填什么,骨架屏表示真实内容尚未加载。

什么时候用

适合用

  • 后台仪表盘首次读取数据,图表标题、统计卡片和列表区域都有固定布局时,先显示对应轮廓。
  • App 的文章详情页等待正文接口返回时,先展示封面、标题和段落的大致位置。
  • 切换商品列表的筛选条件后,新结果需要等待,且卡片布局保持不变时,显示卡片骨架。

不适合用

  • 点击保存后只是等待写入完成,没有即将呈现的内容结构;用按钮加载状态或进度提示更贴切。
  • 搜索已经完成但没有匹配结果时,展示空状态和调整关键词的建议,而不是继续显示骨架。
  • 正在等待文件上传完成,用户关心的是传了多少;用进度条展示上传进度更合适。

练一练

你做一个订单列表页:进入页面要请求订单,列表行的布局固定;请求可能返回订单、空列表或错误。加载期间和结束后怎么处理?

让 AI 帮你做

请为订单列表加入骨架屏:仅在首次加载订单时显示,轮廓贴近现有列表行布局,窄屏下也保持一致。请求成功后替换为真实数据;空结果显示空状态,失败显示错误及重试入口。不要让骨架被当作真实订单。

接下来学什么