vue 点击弹出下拉菜单 点击其他页面收回菜单

由于elementUI的下拉菜单在项目中表现得不尽人意 (定位的原因)

于是 决定自己 整一个 小而美

理清下面几种情况就妥了

出现前 出现后 点击后 出现后未点击选项(点击空白页)

还是直接放码过来 show you my code吧~~~

直接上点击空白(其他)页面 选项框收回 代码吧

思路:直接阻止按钮和选项框的事件冒泡,然后给document绑定事件让选项框消失

页面渲染完即添加点击事件 vue实例销毁 移除点击事件

 

页面其他点击事件一定要记得加上.stop 阻止冒泡 亲测不加 点击不会生效 没有反应

 方法二:通过target事件 判定 只要点击的不是包裹住按钮和内容区域的Div就让v-show为false

 

刚进来时

点击一下“点击”

再次点击“点击”

点击页面外

 

 

 内容显示时 点击页面外

点击页内显示

点击页外消失

 o了~~~

 

vue中可设定元素ref 然后this.$refs访问该元素得信息 

 

 

忘了个事情

这个弹出层整体的场景是这样的 

点击某个按钮 一片内容出现 弹出是一个动画效果 可自定义

再次点击这个按钮 内容又消失 这是天才纸尿裤的第一步

如下 

 

点击span时会切换初始值false 在true false 之间切换

用此来控制内容区域的显示

 【优化】

页面中有多个弹出组件时 只需要单个的弹出 点击其他组件 当前同样消失

结合以上

只要点击的不是当前这个特定的按钮,即消失 同样通过e.target判断

 

转载于:https://www.cnblogs.com/522040-m/p/10021559.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值