Skip to content
通用组件

骨架屏Skeleton

内容到之前先占住它的形状:文字行 / 块 / 方 / 圆,两级表面之间扫光。

Vue
实验import { AkSkeleton } from "@mooncellwiki/prts-design-vue"Storybook ↗源码 ↗

内容到之前先占住它的形状,加载完不跳版。底色在表面 2 与表面 3 之间扫光(1.4s 一轮)。写法同 Naive UI 的 n-skeleton:text / circle / repeat / width / height。

形状 · 尺寸 ​

不写形状时是 1em 高、占满一行的块,配 height 画图片 / 卡片封面的占位(height="120" = CSS 的 .ak-skeleton--rect);text 是文字行(.9em 高、上下 .35em,一组里最后一行 60% 宽),配 repeat 画一段;circle / square 宽高相等、由 width 定(头像、道具)。数字按 px,字符串原样("60%")。

拼成列表占位 ​

照真实内容的版式拼:头像位一个方块、名字一短行、副信息一长行。加载中的容器标 aria-busy="true"。

可访问性 ​

骨架对读屏隐藏(aria-hidden)——它只是形状,没有信息。「正在加载」由外层容器的 aria-busy 或一枚加载(role="status")说。

Vue API ​

属性类型默认说明
textbooleanfalse文字行:.9em 高、上下 .35em 间距;一组里最后一行 60% 宽
circlebooleanfalse圆形(头像占位):宽高相等,由 width 定
squarebooleanfalse方形(道具 / 头像占位):宽高相等,由 width 定
repeatnumber1重复几个(同 Naive):配 text 画一段文字
widthstring | number—宽度:数字按 px,字符串原样("60%");不写时占满一行
heightstring | number—高度:数字按 px;不写时 1em(text 时 .9em,圆 / 方形跟宽度)

CSS 实现 ​

<span class="ak-skeleton ak-skeleton--text"></span>;宽高不同的占位在模板里写 style="width: …"。

块元素 __修饰 --

文本 CC BY-NC-SA 4.0 · 游戏素材版权归鹰角网络所有