为了账号安全,请及时绑定邮箱和手机立即绑定

vue2.0 点击空白区域使盒子显示隐藏

vue2.0 点击空白区域使盒子显示隐藏

富国沪深 2019-02-26 21:17:53
我先点击浏览器的空白区域使这个盒子隐藏 有没有demo 可以写一下 谢谢了
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

最好是采用一个透明的遮罩层进行点击事件从而达到隐藏

为什么不采用监听body的监听事件呢,一方面是因为可能会发生点击事故,就是不小心点到其他a标签、跳转标签或者事件触发元素,会直接触发其他函数或者跳转页面;另一方面是因为可维护性不好,假设可以通过点击多个元素关闭,那么需要挨个判断id。

所以正常解决办法一种是按照楼上的:


 <div class="box-container" @click.self="toggleBox"> <!-- self的作用是阻止冒泡,点击box区域时,box不会消失 -->

        <div class="box" v-show="showBox">

          {{message}}

        </div>

      </div>

一种是单独写一个遮罩层组件,可以随时使用(原理差不多,代码就不写了):可以通过slot或者自定义属性来进行控制哪个元素的开闭。


查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 1988 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信