element/examples/docs/loading.md

120 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<style>
.el-loading-demo {
border: solid 1px #999;
padding: 10px;
text-align: center;
margin-top: 10px;
p {
font-size: 30px;
color: #999;
margin: 10px 0;
}
}
</style>
<script>
export default {
data() {
return {
loading: false,
loading2: false,
fullscreenLoading: false,
tableLoading: false,
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}]
}
},
methods: {
loadTable() {
this.tableLoading = true;
setTimeout(() => {
this.tableLoading = false;
}, 2000);
},
openFullScreen() {
this.fullscreenLoading = true;
setTimeout(() => {
this.fullscreenLoading = false;
}, 2000);
}
}
}
</script>
## 基本用法
:::demo 在 Loading 组件中Element 准备了自定义命令`v-loading`,只需要绑定`Boolean`即可默认状况下Loading 遮罩会插入到绑定元素的子节点。
```html
<el-button :plain="true" @click.native="loading = !loading">打开 / 关闭 loading</el-button>
<div v-loading="loading" class="el-loading-demo">
<p>点击上面的按钮,本区域显示 loading 遮罩</p>
</div>
```
:::
## 修饰符
通过修饰符,我们可以使用全屏幕 Loading 或将 Loading 设置在 body 上。
:::demo Loading 遮罩默认插入至绑定了 `v-loading` 指令的元素上。通过添加 `body` 修饰符,可以使遮罩插入至 DOM 中的 body 上。当需要全屏遮罩时,可使用 `fullscreen` 修饰符(此时遮罩会插入至 body 上)
```html
<template>
<el-button :plain="true" @click.native="loading2 = !loading2">打开 / 关闭 loading</el-button>
<el-button
:plain="true"
@click.native="openFullScreen"
v-loading.fullscreen="fullscreenLoading">
打开全屏 loading
</el-button>
<div v-loading.body="loading2" class="el-loading-demo">
<p>点击上面的按钮,本区域显示 loading 遮罩</p>
</div>
</template>
<script>
export default {
data() {
return {
fullscreenLoading: false
}
}
methods: {
openFullScreen() {
this.fullscreenLoading = true;
setTimeout(() => {
this.fullscreenLoading = false;
}, 2000);
}
}
}
</script>
```
:::