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

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

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

理清下面几种情况就妥了

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

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

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

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

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

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

 

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

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

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

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

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

 

刚进来时

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

点击一下“点击”

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

再次点击“点击”

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

点击页面外

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

 

 内容显示时 点击页面外

点击页内显示

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

点击页外消失

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

 o了~~~

 

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

 

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

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

忘了个事情

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

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

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

如下 

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

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

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

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

 【优化】

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

结合以上

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

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

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

 

相关文章:

  • 2022-12-23
  • 2022-03-09
  • 2022-12-23
  • 2022-03-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2018-11-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案