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的mixin策略
Nov 19 Vue.js
实用的 vue tags 创建缓存导航的过程实现
Dec 03 Vue.js
详解Vue中的自定义指令
Dec 07 Vue.js
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
Vue项目打包部署到apache服务器的方法步骤
Feb 01 Vue.js
vue脚手架项目创建步骤详解
Mar 02 Vue.js
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
vue+element ui实现锚点定位
Jun 29 Vue.js
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
vue实现拖拽交换位置
Apr 07 Vue.js
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 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
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
PHP常用处理静态操作类
2015/04/03 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
JavaScript如何操作css
2020/10/24 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
python爬取网页转换为PDF文件
2018/06/07 Python
Python BS4库的安装与使用详解
2018/08/08 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
提高python代码运行效率的一些建议
2020/09/29 Python
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
外贸业务员的岗位职责
2013/11/23 职场文书
工程管理专业个人求职信范文
2013/12/07 职场文书
求职简历中自我评价
2014/01/28 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
初中毕业生感言
2015/07/31 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
javascript之Object.assign()的痛点分析
2022/03/03 Javascript