vue3 点击弹窗外关闭当前弹窗
时间: 2023-09-16 07:11:28 浏览: 122
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
你可以在Vue3中使用事件修饰符来关闭弹窗。具体来说,你需要在文档对象上监听“点击”事件,以及在弹窗的容器上监听“点击”事件,并在容器中添加stop事件修饰符,以防止事件冒泡到文档对象。在容器上的“点击”事件中,你可以使用v-model来切换弹窗的显示状态。例如,你的代码可以如下所示:
```
<template>
<div>
<button @click="showPopup = true">显示弹窗</button>
<div v-if="showPopup" class="popup-container" @click.stop="showPopup = false">
<div class="popup">
<!-- 内容 -->
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
showPopup: false,
};
},
};
</script>
<style>
.popup-container {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
}
.popup {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #fff;
padding: 20px;
}
</style>
```
在这个例子中,当用户点击“显示弹窗”按钮时,弹窗的显示状态将变为true,并且在容器上添加一个类名为“popup-container”的元素。这个元素使用fixed定位,并填充整个窗口。弹窗通过绝对定位并使用transform属性使其在窗口中心正中间。同时,在容器上监听点击事件,并使用.stop事件修饰符以防止事件冒泡到文档对象中,从而在弹窗的外部单击时隐藏弹窗。
阅读全文