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祖孙组件之间的数据传递案例
Dec 07 Vue.js
vue下拉刷新组件的开发及slot的使用详解
Dec 23 Vue.js
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
在vue项目中封装echarts的步骤
Dec 25 Vue.js
Vue实现简易购物车页面
Dec 30 Vue.js
vscode自定义vue模板的实现
Jan 27 Vue.js
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
vue 数据双向绑定的实现方法
Mar 04 Vue.js
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 18 Vue.js
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
vue el-table实现递归嵌套的示例代码
Aug 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通过加锁实现并发情况下抢码功能
2016/08/10 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
JS实现百度搜索框
2021/02/25 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
python实现批量转换文件编码(批转换编码示例)
2014/01/23 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
学生会竞选演讲稿
2014/04/24 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
员工教育培训协议书
2014/09/27 职场文书
热情服务标语
2014/10/07 职场文书
员工工作及收入证明
2014/10/28 职场文书
一条慢SQL语句引发的改造之路
2022/03/16 MySQL
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js