Spin加载中

用于页面和区块的加载中状态。

何时使用

页面局部处于等待异步数据或正在渲染过程时,合适的加载动效会有效缓解用户的焦虑。

代码演示

Spin加载中 - 图1

基本用法

一个简单的 loading 状态。

  1. import { Component } from '@angular/core';
  2. @Component({
  3. selector: 'nz-demo-spin-basic',
  4. template: `
  5. <nz-spin nzSimple></nz-spin>
  6. `
  7. })
  8. export class NzDemoSpinBasicComponent {}

Spin加载中 - 图2

容器

放入一个容器中。

  1. import { Component } from '@angular/core';
  2. @Component({
  3. selector: 'nz-demo-spin-inside',
  4. template: `
  5. <div class="example">
  6. <nz-spin nzSimple></nz-spin>
  7. </div>
  8. `,
  9. styles: [
  10. `
  11. .example {
  12. text-align: center;
  13. background: rgba(0, 0, 0, 0.05);
  14. border-radius: 4px;
  15. margin-bottom: 20px;
  16. padding: 30px 50px;
  17. margin: 20px 0;
  18. }
  19. `
  20. ]
  21. })
  22. export class NzDemoSpinInsideComponent {}

Spin加载中 - 图3

自定义描述文案

自定义描述文案。

  1. import { Component } from '@angular/core';
  2. @Component({
  3. selector: 'nz-demo-spin-tip',
  4. template: `
  5. <nz-spin nzTip="Loading...">
  6. <nz-alert
  7. nzType="info"
  8. nzMessage="Alert message title"
  9. nzDescription="Further details about the context of this alert."
  10. >
  11. </nz-alert>
  12. </nz-spin>
  13. `
  14. })
  15. export class NzDemoSpinTipComponent {}

Spin加载中 - 图4

自定义指示符

使用自定义指示符。

  1. import { Component } from '@angular/core';
  2. @Component({
  3. selector: 'nz-demo-spin-custom-indicator',
  4. template: `
  5. <ng-template #indicatorTemplate><i nz-icon type="loading" style="font-size: 24px;"></i> </ng-template>
  6. <nz-spin nzSimple [nzIndicator]="indicatorTemplate"> </nz-spin>
  7. `
  8. })
  9. export class NzDemoSpinCustomIndicatorComponent {}

Spin加载中 - 图5

各种大小

小的用于文本加载,默认用于卡片容器级加载,大的用于页面级加载。

  1. import { Component } from '@angular/core';
  2. @Component({
  3. selector: 'nz-demo-spin-size',
  4. template: `
  5. <nz-spin nzSimple [nzSize]="'small'"></nz-spin>
  6. <nz-spin nzSimple></nz-spin>
  7. <nz-spin nzSimple [nzSize]="'large'"></nz-spin>
  8. `,
  9. styles: [
  10. `
  11. nz-spin {
  12. display: inline-block;
  13. margin-right: 16px;
  14. }
  15. `
  16. ]
  17. })
  18. export class NzDemoSpinSizeComponent {}

Spin加载中 - 图6

卡片加载中

可以直接把内容内嵌到 Spin 中,将现有容器变为加载状态。

  1. import { Component } from '@angular/core';
  2. @Component({
  3. selector: 'nz-demo-spin-nested',
  4. template: `
  5. <nz-spin [nzSpinning]="isSpinning">
  6. <nz-alert
  7. [nzType]="'info'"
  8. [nzMessage]="'Alert message title'"
  9. [nzDescription]="'Further details about the context of this alert.'"
  10. >
  11. </nz-alert>
  12. </nz-spin>
  13. <div style="margin-top:8px;">
  14. Loading state:
  15. <nz-switch [(ngModel)]="isSpinning"></nz-switch>
  16. </div>
  17. `
  18. })
  19. export class NzDemoSpinNestedComponent {
  20. isSpinning = false;
  21. }

Spin加载中 - 图7

延迟

延迟显示 loading 效果。当 spinning 状态在 delay 时间内结束,则不显示 loading 状态。

  1. import { Component } from '@angular/core';
  2. @Component({
  3. selector: 'nz-demo-spin-delayAndDebounce',
  4. template: `
  5. <nz-spin [nzSpinning]="isSpinning" [nzDelay]="500">
  6. <nz-alert
  7. [nzType]="'info'"
  8. [nzMessage]="'Alert message title'"
  9. [nzDescription]="'Further details about the context of this alert.'"
  10. >
  11. </nz-alert>
  12. </nz-spin>
  13. <div style="margin-top:8px;">
  14. Loading state:
  15. <nz-switch [(ngModel)]="isSpinning"></nz-switch>
  16. </div>
  17. `
  18. })
  19. export class NzDemoSpinDelayAndDebounceComponent {
  20. isSpinning = false;
  21. }

API

单独引入此组件

想要了解更多关于单独引入组件的内容,可以在快速上手页面进行查看。

  1. import { NzSpinModule } from 'ng-zorro-antd';

nz-spincomponent

参数说明类型默认值
[nzDelay]延迟显示加载效果的时间(防止闪烁),单位:毫秒number-
[nzIndicator]加载指示符TemplateRef<void>-
[nzSize]组件大小'large'|'small'|'default''default'
[nzSpinning]是否旋转booleantrue
[nzSimple]是否包裹元素booleanfalse
[nzTip]当作为包裹元素时,可以自定义描述文案string-