创建一个遮罩层,用于强调特定的页面元素,并阻止用户进行其他操作。
通过以下方式来全局注册组件,更多注册方式请参考组件注册。
import { createApp } from 'vue';
import { Overlay } from 'vant';
const app = createApp();
app.use(Overlay);
<van-button type="primary" text="显示遮罩层" @click="show = true" />
<van-overlay :show="show" @click="show = false" />
import { ref } from 'vue';
export default {
setup() {
const show = ref(false);
return { show };
},
};
通过默认插槽可以在遮罩层上嵌入任意内容。
<van-overlay :show="show" @click="show = false">
<div class="wrapper" @click.stop>
<div class="block" />
</div>
</van-overlay>
<style>
.wrapper {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
.block {
width: 120px;
height: 120px;
background-color: #fff;
}
</style>
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
show | 是否展示遮罩层 | boolean |
|
z-index | z-index 层级 | number | string |
|
duration | 动画时长,单位秒,设置为 0 可以禁用动画 | number | string |
|
class-name | 自定义类名 | string | - |
custom-style | 自定义样式 | object | - |
lock-scroll | 是否锁定背景滚动,锁定时蒙层里的内容也将无法滚动 | boolean |
|
lazy-render | 是否在显示时才渲染节点 | boolean |
|
事件名 | 说明 | 回调参数 |
---|---|---|
click | 点击时触发 | event: MouseEvent |
名称 | 说明 |
---|---|
default | 默认插槽,用于在遮罩层上方嵌入内容 |
组件导出以下类型定义:
import type { OverlayProps } from 'vant';
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
名称 | 默认值 | 描述 |
---|---|---|
--van-overlay-z-index | 1 | - |
--van-overlay-background | rgba(0, 0, 0, 0.7) | - |