vue中实现点击空白区域关闭弹窗的两种方法


Posted in Vue.js onDecember 30, 2020

1. 第一种做法

首页在外层容器里面取一个名字为main,即ref="main",当bankSwitch为true的时候,弹窗出现

<div class="selectedBorder" ref="main">
	<div class="bankItem" v-if="bankSwitch == true">
		你好我是弹窗里面的内容部分
 	</div>
</div>

所触发的事件如下:

首页,先在全局创建一个点击事件:bodyCloseMenus

事件作用:当点击main容器的时候(this.refs.main && !this.refs.main.contains(e.target)),并且弹窗出现的时候(self.bankSwitch == true),点击空白区域将弹窗关闭(self.bankSwitch = false)

最后,在页面注销前,将点击事件给移除

mounted() {
  document.addEventListener("click", this.bodyCloseMenus);
 },
 methods:{
 bodyCloseMenus(e) {
   let self = this;
   if (this.$refs.main && !this.$refs.main.contains(e.target)) {
    if (self.bankSwitch == true){
     self.bankSwitch = false;
    }
   }
  },
beforeDestroy() {
  document.removeEventListener("click", this.bodyCloseMenus);
 },

2.第二种做法

首页在外层容器里面定义一个阻止冒泡事件,即@click.stop,当bankSwitch为true的时候,弹窗出现

<div class="selectedBorder" @click.stop>
	<div class="bankItem" v-if="bankSwitch == true">
		你好我是弹窗里面的内容部分
 	</div>
</div>

所触发的事件如下:

首页,先在全局创建一个点击事件:bodyCloseMenus

事件作用:当弹窗出现的时候(self.bankSwitch == true),点击空白区域将弹窗关闭(self.bankSwitch = false)

最后,在页面注销前,将点击事件给移除

mounted() {
  document.addEventListener("click", this.bodyCloseMenus);
 },
 methods:{
 bodyCloseMenus(e) {
   let self = this;
    if (self.bankSwitch == true){
     self.bankSwitch = false;
    }
  },
beforeDestroy() {
  document.removeEventListener("click", this.bodyCloseMenus);
 },

以上就是vue中实现点击空白区域关闭弹窗的两种方法的详细内容,更多关于vue 点击空白区域关闭弹窗的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
如何使用 vue-cli 创建模板项目
Nov 19 Vue.js
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
vue中如何自定义右键菜单详解
Dec 08 Vue.js
vue+openlayers绘制省市边界线
Dec 24 Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 Vue.js
Vue 数据响应式相关总结
Jan 28 Vue.js
Vue实现todo应用的示例
Feb 20 Vue.js
使用vue-element-admin框架从后端动态获取菜单功能的实现
Apr 29 Vue.js
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
梳理一下vue中的生命周期
Dec 30 #Vue.js
Vue实现简易购物车页面
Dec 30 #Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 #Vue.js
vue+element UI实现树形表格
Dec 29 #Vue.js
vue实现树状表格效果
Dec 29 #Vue.js
vue实现图书管理系统
Dec 29 #Vue.js
Vue实现随机验证码功能
Dec 29 #Vue.js
You might like
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
德劲1104的电路分析与改良
2021/03/01 无线电
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
详解js的六大数据类型
2016/12/27 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
python多重继承新算法C3介绍
2014/09/28 Python
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
优秀研究生自我鉴定
2013/12/04 职场文书
服务员自我评价
2014/01/25 职场文书
财务简历的自我评价
2014/03/05 职场文书
群众路线个人整改措施
2014/10/24 职场文书
销售经理岗位职责
2015/01/31 职场文书
面试通知邮件
2015/04/20 职场文书
2015年食堂工作总结报告
2015/04/23 职场文书
办公室主任岗位竞聘书
2015/09/15 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
《草虫的村落》教学反思
2016/02/20 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
python缺失值的解决方法总结
2021/06/09 Python
Python移位密码、仿射变换解密实例代码
2021/06/27 Python