Skeleton骨架屏

    • 网络较慢,需要长时间等待加载处理的情况下。
    • 图文信息内容较多的列表/卡片中。
    • 只适合用在第一次加载数据的场景。
    • 可以被 Spin 完全代替,但是在可用的场景下可以比 Spin 提供更好的视觉效果和用户体验

    基本

    最简单的用法。

    1. @Component({
    2. selector: 'nz-demo-skeleton-basic',
    3. template: `
    4. <nz-skeleton></nz-skeleton>
    5. `
    6. })
    7. export class NzDemoSkeletonBasicComponent {}

    Skeleton骨架屏 - 图4

    复杂的组合

    动画效果

    显示动画效果。

    1. @Component({
    2. selector: 'nz-demo-skeleton-active',
    3. template: `
    4. <nz-skeleton [nzActive]="true"></nz-skeleton>
    5. `
    6. })
    7. export class NzDemoSkeletonActiveComponent {}

    Skeleton骨架屏 - 图6

    骨架按钮、头像和输入框。

    包含子组件

    加载占位图包含子组件。

    1. import { Component } from '@angular/core';
    2. @Component({
    3. selector: 'nz-demo-skeleton-children',
    4. template: `
    5. <div class="article">
    6. <nz-skeleton [nzLoading]="loading">
    7. <h4>Ant Design, a design language</h4>
    8. <p>
    9. We supply a series of design principles, practical patterns and high quality design resources (Sketch and Axure), to help people
    10. create their product prototypes beautifully and efficiently.
    11. </p>
    12. </nz-skeleton>
    13. <button nz-button (click)="showSkeleton()" [disabled]="loading">
    14. Show Skeleton
    15. </div>
    16. styles: [
    17. `
    18. .article h4 {
    19. margin-bottom: 16px;
    20. }
    21. .article button {
    22. margin-top: 16px;
    23. }
    24. `
    25. ]
    26. })
    27. export class NzDemoSkeletonChildrenComponent {
    28. loading = false;
    29. showSkeleton(): void {
    30. this.loading = true;
    31. setTimeout(() => {
    32. this.loading = false;
    33. }, 3000);
    34. }
    35. }

    Skeleton骨架屏 - 图8

    列表样例

    NzSkeletonAvatar

    属性说明类型默认值
    size设置头像占位图的大小number | ‘large’ | ‘small’ | ‘default’-
    shape指定头像的形状‘circle’ | ‘square’-

    NzSkeletonParagraph

    属性说明类型默认值
    rows设置段落占位图的行数number-
    width设置标题占位图的宽度,若为数组时则为对应的每行宽度,反之则是最后一行的宽度number | string | Array<number | string>-

    nz-skeleton-element [nzType=”avatar”]component

    属性说明类型默认值
    [nzActive]是否展示动画效果booleanfalse
    [nzSize]大小number | ‘large’ | ‘small’ | ‘default’‘default’
    [nzShape]形状‘circle’ | ‘square’‘square’