vue遮罩实现
实现 Vue 遮罩的常见方法
使用 CSS 定位和透明度
创建一个全屏遮罩层,通过 CSS 固定定位覆盖整个视口,并设置半透明背景色。
<template>
<div class="overlay" v-if="showOverlay"></div>
</template>
<style>
.overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 999;
}
</style>
结合 Transition 实现动画
通过 Vue 的 <transition> 组件为遮罩添加淡入淡出效果。

<template>
<transition name="fade">
<div class="overlay" v-if="showOverlay"></div>
</transition>
</template>
<style>
.fade-enter-active, .fade-leave-active {
transition: opacity 0.3s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}
</style>
遮罩与内容联动
在遮罩层内嵌套需要展示的内容(如弹窗),并通过事件控制显隐。

<template>
<div class="overlay" v-if="showOverlay" @click="closeOverlay">
<div class="modal" @click.stop>
<slot></slot>
</div>
</div>
</template>
<script>
export default {
methods: {
closeOverlay() {
this.showOverlay = false;
}
}
}
</script>
动态控制遮罩层级
通过 z-index 管理遮罩与其他元素的层级关系,确保遮罩始终覆盖指定区域。
.overlay {
z-index: 1000; /* 确保高于页面其他元素 */
}
.modal {
z-index: 1001; /* 确保模态框在遮罩上方 */
}
使用第三方库
借助 vant、element-ui 等组件库快速实现遮罩效果。例如使用 vant:
<van-overlay :show="showOverlay" @click="closeOverlay" />






