骨架屏
骨架屏是尚未加载的组件的预览占位符,减少加载时的挫败感。
简介
骨架屏为用户提供数据加载时 UI 外观的预期。它有助于减少对长时间加载的感知,同时提供更有趣的加载状态。
Lorem ipsum 是图形、印刷和出版行业中常用的占位符文本。
按 Enter 键开始编辑
基础知识
import Skeleton from '@mui/joy/Skeleton';
有两种使用骨架屏组件的方法
- 遮罩组件:请参阅 头像、图像 和 排版 示例。骨架屏组件将继承它们的尺寸,这使得 UI 更可预测,同时还可以防止加载完成时发生布局偏移。
- 设置自定义宽度和高度:请参阅 几何图形 和 文本块 示例。使用此方法可以完全控制骨架屏的大小,完全忽略其父级尺寸。请注意,如果骨架屏模仿的实际组件具有不同的大小,则此选项可能会产生布局偏移。
自定义
加载状态
骨架屏的 loading
属性默认设置为 true
。
将其设置为 false
以隐藏骨架屏组件。如果骨架屏有子元素,则会渲染这些子元素。
Lorem ipsum 是图形、印刷和出版行业中常用的占位符文本。
动画
使用 animation
属性来控制骨架屏组件的动画方式。animation
属性值可以是以下之一
pulse
(默认):骨架屏的背景淡入和淡出。wave
:从左到右流动的波浪动画。false
:完全禁用动画。
下面的演示展示了波浪动画
Lorem ipsum 是图形、印刷和出版行业中常用的占位符文本。
要将 wave
动画设置为所有骨架屏组件实例的默认动画,请使用主题的默认属性。
import { CssVarsProvider, extendTheme } from '@mui/joy/styles';
const theme = extendTheme({
components: {
JoySkeleton: {
defaultProps: {
animation: 'wave',
},
},
},
});
function App() {
return (
<CssVarsProvider theme={theme}>
<Skeleton />{' '}
{/* The Skeleton component will have the wave animation by default */}
</CssVarsProvider>
);
}
头像
在显示头像时,使用 头像 组件包裹骨架屏。
按 Enter 键开始编辑
与排版内联
将骨架屏插入排版组件和文本之间,以显示占位符行。
标题
历史、目的和用途Lorem ipsum 是图形、印刷和出版行业中常用的占位符文本,用于预览布局和视觉模型。
几何图形
要构建特定的骨架屏形状,请使用 variant
属性并在 circular
或 rectangular
之间进行选择。要在特定尺寸上使用它,请使用 width
和 height
属性。
按 Enter 键开始编辑
文本块
使用 variant="text"
和 level
属性来创建遵循主题排版样式的骨架文本块。
level
属性值可以是主题的排版相关令牌。骨架文本的结果将具有与 level
属性文本相同的高度。
h1 字体
h2 字体
body-md 字体
body-sm 字体
body-xs 字体按 Enter 键开始编辑
优胜美地国家公园
2021 年 4 月 24 日至 5 月 2 日
总价
$2,900