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+iview分页组件的封装
Nov 17 Vue.js
vue-router定义元信息meta操作
Dec 07 Vue.js
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
vue watch监控对象的简单方法示例
Jan 07 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
详解Vue.js 可拖放文本框组件的使用
Mar 03 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
VUE使用draggable实现组件拖拽
Apr 06 Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
vue elementUI表格控制对应列
Apr 13 Vue.js
vue项目配置sass及引入外部scss文件
Apr 14 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
php escape URL编码
2008/12/10 PHP
PHP print类函数使用总结
2010/06/25 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
js的2种继承方式详解
2014/03/04 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
python判断链表是否有环的实例代码
2020/01/31 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
护理毕业生自我鉴定
2014/02/11 职场文书
优秀班组长事迹
2014/05/31 职场文书
田径运动会通讯稿
2014/09/13 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
学生通报表扬范文
2015/05/04 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
24年收藏2000多部退役军用电台
2022/02/18 无线电
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript