跳到内容
+

骨架屏

骨架屏是尚未加载的组件的预览占位符,减少加载时的挫败感。

简介

骨架屏为用户提供数据加载时 UI 外观的预期。它有助于减少对长时间加载的感知,同时提供更有趣的加载状态。

Lorem ipsum 是图形、印刷和出版行业中常用的占位符文本。

Enter 键开始编辑

基础知识

import Skeleton from '@mui/joy/Skeleton';

有两种使用骨架屏组件的方法

  1. 遮罩组件:请参阅 头像图像排版 示例。骨架屏组件将继承它们的尺寸,这使得 UI 更可预测,同时还可以防止加载完成时发生布局偏移。
  2. 设置自定义宽度和高度:请参阅 几何图形文本块 示例。使用此方法可以完全控制骨架屏的大小,完全忽略其父级尺寸。请注意,如果骨架屏模仿的实际组件具有不同的大小,则此选项可能会产生布局偏移。

自定义

加载状态

骨架屏的 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 属性并在 circularrectangular 之间进行选择。要在特定尺寸上使用它,请使用 widthheight 属性。

Enter 键开始编辑

文本块

使用 variant="text"level 属性来创建遵循主题排版样式的骨架文本块。

level 属性值可以是主题的排版相关令牌。骨架文本的结果将具有与 level 属性文本相同的高度。

h1 字体

h2 字体

body-md 字体

body-sm 字体

body-xs 字体
Enter 键开始编辑

优胜美地国家公园

2021 年 4 月 24 日至 5 月 2 日

总价

$2,900

API

请参阅下面的文档,以获取此处提及的组件的所有可用属性和类的完整参考。