简单的点击空白处(弹窗主要内容外)关闭弹窗功能

本文介绍了如何通过阻止点击事件冒泡来实现在弹窗内容外点击时关闭弹窗的功能,主要涉及CSS和Vue.js的运用。

一些方法是通过监听鼠标事件判断点击区域与目标区域是否一致来实现的,其实我们只需要在弹窗内容部分阻止点击事件冒泡就可以了。

<template>
  <div>
    <button @click="show=true" class="btn">点击打开弹窗</button>
    <!--弹窗背景蒙版-->
    <div class="pop-bg" v-if="show" @click="show=false">
        <!--主要是弹窗内容部分加上@click.stop阻止冒泡-->
        <div class="model" @click.stop="">
            <div class="close" @click="show=false">&times;</div>
            <div>弹窗内容</div>
        </div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      show: false
    };
  }
};
</script>
<style scoped>
button {
  width: 200px;
  height: 66px;
}
.pop-bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, .2);
  display: flex;
  justify-content: center;
  align-items: center;
}
.model {
    width: 500px;
    height: 300px;
    border: 1px solid slategrey;
    position: relative;
    background: white;
}
.close {
    color: rgb(50, 50, 50);
    font-size: 30px;
    position: absolute;
    top: 10px;
    right: 25px;
    cursor: pointer;
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值