vue(js)点击目标div以外区域将目标div隐藏

摘要:
今天开发新项目的时候,有个需求,点击一个div展示出个弹出窗弹出窗标题的颜色要跟点击的div图标颜色一致,所以这就需要我遍历一下多个数据,然后需要点击弹出div的外部其他区域,隐藏这个div。box是弹出窗div的id;这样就能在内和在外操作了;众所周知。所以就是第一个为true其他都是false了;所以这里的逻辑就是,当这个div的状态为true时,将这个为true的数组push进popList中;然后点击“在外”那里将它隐藏就好了因此就达到了想要的效果

今天开发新项目的时候,有个需求,点击一个div 展示出个弹出窗 弹出窗标题的颜色要跟点击的div图标颜色一致,

所以这就需要我遍历一下多个数据,

然后需要点击弹出div的外部其他区域,隐藏这个div。所以 有了以下操作!

vue(js)点击目标div以外区域将目标div隐藏第1张

这个点击事件@click.stop="isPop(item.event)" 加上.stop 起阻止冒泡的效果,这里很重要,具体原因就暂时不解释了 。做的时候就会理解了;

目标div 是被 item.popShow 控制的,我给出我数组的格式

fiveList: [
            {
              img: "./images/case/blockchain/1@2x.png",
              popShow: false,
              color: "rgba(245, 134, 125, 1)",
              title: "区块链钱包",
              content:
                "支持各类底层协议类钱包开发,如比特币、以太坊等代币开发和私有链的搭建,可完美对接会员系统和交易系统。"
            },
            {
              img: "./images/case/blockchain/2@2x.png",
              popShow: false,
              color: "#6cd286",
              title: "会员算力系统",
              content:
                "会员算力系统包括会员管理系统、会员奖励制度、会员推荐制度,可对接商城系统,游戏等应用场景。"
            },
            {
              img: "./images/case/blockchain/3@2x.png",
              popShow: false,
              color: "#36b5f0",
              title: "数字币交易系统",
              content:
                "分会员算力系统内置交易系统和独立交易系统,点对点交易。会员算力系统y无缝对接。"
            },
            {
              img: "./images/case/blockchain/4@2x.png",
              popShow: false,
              color: "#ffa930",
              title: "大型交易所系统",
              content:
                "支持C2C交易、币币交易、OTC场外交易。内存运行,速度快,高效,稳定。"
            },
            {
              img: "./images/case/blockchain/5@2x.png",
              popShow: false,
              color: "#a676e4",
              title: "专业的开发团队",
              content:
                "开发团队精通区块链数字币等技术,精通各种会员奖金制度算法和各类交易系统的开发。"
            }
          ],

然后如果单纯的需要控制这个div的显示与隐藏的话,就一条代码足矣

vue(js)点击目标div以外区域将目标div隐藏第2张

那么如何获取这个div的其他外部区域呢?

vue(js)点击目标div以外区域将目标div隐藏第3张

box 是弹出窗div的 id;

这样就能在内和在外操作了;

众所周知。 我们如果需要在这里面控制每个被点击的div的话,直接 this.xxx=false; 是不行的 原因你们应该也懂;

列出关键代码:

vue(js)点击目标div以外区域将目标div隐藏第4张

先var 一个 空数组;循环弹出层数组,拿到每个弹出层此时的 true or false 的状态

vue(js)点击目标div以外区域将目标div隐藏第5张

这是我点击第一个。所以就是 第一个 为true 其他都是 false了;

所以这里的逻辑就是,当这个div的状态为true时,将这个为true的数组 push 进 popList 中;然后点击 “在外” 那里将它隐藏就好了

vue(js)点击目标div以外区域将目标div隐藏第6张

因此就达到了想要的效果

免责声明:文章转载自《vue(js)点击目标div以外区域将目标div隐藏》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Allegro设置十字大光标Windows Server 2008 R2无法连接无线网络的解决方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

甘特图收集

vue-gantt-elastic:https://github.com/neuronetio/vue-gantt-elastic dhtmlxgantt:https://dhtmlx.com/blog/use-dhtmlxgantt-vue-js-framework-demo/ https://www.cnblogs.com/pengfei-nie/p/...

vue框架前后端分离项目之区间过滤、搜索及支付宝支付功能等相关内容-130

1 区间过滤 # 方式一:自己写过滤类,配置到视图类的 filter_backends = [自己写的过滤类]# 方式二:借助django—fileter # 1 写一个类:    from . import models    from django_filters import filters    class CourseFilterSe...

vue效果之改element的el-checkbox-group多选框组为单选可取消的单选框(样式还是多选框的样式)

vue <el-checkbox-group v-model="listThematicChecked"> <el-checkbox v-for="(item , index) in subjectList" @change="clickThematicMapItem(item,index)" :key="item.me...

Vue(三)-- class与style绑定、条件渲染、列表渲染、列表的搜索和排序

目录 1.class与style绑定 --1.1class绑定,:class='xxx' --1.2style绑定 2.条件渲染 --2.1v-if和v-else --2.2v-show --2.3比较v-if与v-show 3.列表渲染 --3.1v-for遍历数组 --3.2v-for遍历对象 --练习代码 --3.3为什么要使用:...

Vue2 实现时空穿梭框功能模块

前言 这篇文章主要是分享一个时空穿梭框功能,也就是我们平时用的选择功能。勾选了的项就会进入到另一个框中。 时空穿梭框之旅 示例演示: 这个时空穿梭框实现了: 1、可以全选、反选 2、没有选中时,不可以点穿梭按钮 3、自动计数(共有多少个,选中了多少个) 4、没有数据时,全选不可点击 这里主要是想通过这个示例来抛砖引玉,更多的功能,你可以根据自己的实践...

【vue】在移动端使用better-scroll 实现滚动效果

  安装依赖:(c)npm install better-scroll --save 引入:  import BScroll from 'better-scroll' 格式:  var obj = new BScroll(object,{[option1,],.,.}); 注意: 1、要确保object元素的高度比其父元素高 2、使用时,一定要确保obje...