Skip to content
On this page

基本使用

通过 row 设置需要显示的行数

html
<uvSkeleton :row="3" />

显示标题

通过 title 显示标题

html
<uvSkeleton title :row="3" />

圆角

通过 round 显示圆角

html
<uvSkeleton title round :row="3" />

显示头像

通过 avatar 显示头像

html
<uvSkeleton avatar title :row="3" />

正方形头像

通过 avatar-shape 设置为 square

html
<uvSkeleton
  avatar
  title
  avatar-shape="square"
  :row="3"
/>

内容设置不同宽度

通过 row-width 传入数组设置对应行的宽度大小

html
<uvSkeleton title :row="4" :row-width="['100%','90%','70%','80%']" />

显示子组件

通过 loading 控制,true时为骨架屏加载,false 为需要显示的内容

html
<uvSkeleton
  :loading="!isLoading"
  avatar
  title
  :row="3"
>
  <div style="display: flex;">
    <div style="margin-right: 10px;">
      <uv-icon
        size="30"
        name="help"
      />
    </div>
    <div style="flex: 1 0;">
      <div style="margin-bottom: 12px;font-size: 18px;font-weight: 700;">
        关于 uv-ui
      </div>
      <div style="line-height: 1.5;">
        uv-ui 是一套轻量、可定制的移动端 Vue 组件库,提供了丰富的组件,帮助开发者快速搭建移动应用。
      </div>
    </div>
  </div>
</uvSkeleton>

自定义展示内容

skeleton组件中有以下几个子组件可供使用,分别为 skeleton-image 图片 skeleton-paragraph 文本字段 skeleton-title 文本头skeleton-avatar 头像

html
<uvSkeleton>
  <template #template>
    <div :style="{ display: 'flex', width: '100%' }">
      <uv-skeleton-image />
      <div :style="{ flex: 1, marginLeft: '16px' }">
        <uv-skeleton-paragraph row-width="60%" />
        <uv-skeleton-paragraph />
        <uv-skeleton-paragraph />
        <uv-skeleton-paragraph />
      </div>
    </div>
  </template>
</uvSkeleton>

skeleton-image

props: iconSize icon大小 、 iconColor icon颜色

skeleton-image css变量:

css
--uv-skeleton-image-size: 96px;
  --uv-skeleton-image-bg-color: #f2f3f5;

skeleton-avatar

props: avatarShape 头像形状,可设置为roundsquare

skeleton-avatar css变量:

css
--uv-skeleton-avatar-size: 32px;
  --uv-skeleton-avatar-bg-color: #f2f3f5;
  --uv-skeleton-avatar-margin-right: 12px;

skeleton-title

props: titleWidth 标题宽度,默认40%、 round 是否为圆形

skeleton-title css变量:

css
--uv-skeleton-title-height: 16px;
  --uv-skeleton-title-bg-color: #f2f3f5;
  --uv-skeleton-title-margin-bottom: 12px;

skeleton-paragraph

props: rowWidth 字段宽度,默认100%,最后一个默认为60%、 round 是否为圆形

skeleton-paragraph css变量:

css
--uv-skeleton-paragraph-height: 16px;
  --uv-skeleton-paragraph-bg-color: #f2f3f5;
  --uv-skeleton-paragraph-margin-top: 12px;

props

属性含义类型默认值
row段落占位图行数Number0
row-width段落占位图宽度,可传数组来设置每一行的宽度[Number, String, Array]100%
title是否显示标题占位图Booleanfalse
avatar是否显示头像占位图Booleanfalse
loading是否显示骨架屏,传 false 时会展示子组件内容Booleantrue
animate是否开启动画Booleantrue
round是否将标题和段落显示为圆角风格Booleanfalse
title-width标题占位图宽度String40%
avatar-shape头像占位图形状,可选值为 squareStringround

插槽

插槽名称说明
default骨架屏内容
template自定义内容

css变量

css
--uv-skeleton-duration: 1.2s;
  --uv-skeleton-border-radius: 999px;
  --uv-skeleton-blink-opacity: 0.6;

Released under the MIT License.