当前位置: 首页 > news >正文

软件培训网站设计一个网站要多久

软件培训网站,设计一个网站要多久,凉山州住房和城乡建设局网站,在线室内设计弹出菜单应该具有的功能,当鼠标点击其他区域时,则关闭该菜单。 问题来了,怎么检测鼠标点击了其他区域而不是当前菜单? 百度“JS检测区域外的点击事件”,会发现有很多方法,有递归检测父元素,有遍…

弹出菜单应该具有的功能,当鼠标点击其他区域时,则关闭该菜单。
问题来了,怎么检测鼠标点击了其他区域而不是当前菜单?
百度“JS检测区域外的点击事件”,会发现有很多方法,有递归检测父元素,有遍历冒泡节点等等。
vue 解决的思路:将菜单区域的点击事件用 stop 修饰,在最顶层元素调用鼠标单击事件关闭菜单,完毕!
由于菜单区域单击事件已被 stop 停止冒泡,顶层元素无法捕获,因此菜单区域的单击并不会关闭自己。这样,不需要增加任何逻辑代码,只需要在单击事件后增加一个 .stop 后缀来修饰就能解决。

演示效果和源码如下:
在这里插入图片描述

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.14/vue.min.js"></script><title>弹出菜单测试1</title><style>body {padding: 0; margin: 0;}#base {width: 100%;height: 100%;position: absolute;}#nav { margin: 16px;}#nav>span {display: inline-block;border: 1px solid #bbb;background-color: #ebf4f6;border-radius: 6px;padding: 6px 18px;user-select: none;}#nav>span:hover {background-color: #ace4eb;}.menu>div {display: flex;justify-content: flex-start;flex-direction: column;width: 160px;border: 1px solid #bbb;border-radius: 6px;padding: 12px 0;box-shadow: 0px 0px 5px #999;position: absolute;}.menu>div>div {width: 148px;height: 32px;margin: 0 6px;line-height: 32px;border-radius: 4px;text-align: center;}.menu>div>div:hover {background-color: #ace4eb;}hr {width: 154px;height: 1px;color: #808080;margin: 5px 2px;}</style>
</head>
<body><div id="base" @click="pickOther"><div id="nav" @click.stop="showMenu"><span id="ck1">手机</span><span id="ck2">电脑</span><span id="ck3">家具</span></div><div @click.stop="pickMenu" class="menu"><div v-if="cMenu=='ck1m'" id="ck1m"><div>手机通讯</div><div>手机配件</div><div>运营商</div><div>智能设备</div></div><div v-if="cMenu=='ck2m'" id="ck2m"><div>电脑整机</div><div>电脑配件</div><hr><div>外设产品</div><div>游戏设备</div><div>游戏设备</div><div>办公设备</div></div><div v-if="cMenu=='ck3m'" id="ck3m"><div>家电厨具</div><div>家装软饰</div><div>生活日用</div><div>灯具五金</div></div></div></div><script>var vm = new Vue({el: '#base',data: { cMenu: '' },  // cMenu 为空时不显示任何菜单methods: {showMenu: function () {const btn = event.target;if (btn.nodeName.toUpperCase() != 'SPAN') return;// 计算菜单的新坐标const e = $(btn);const x = e.offset().left + e.innerWidth();const y = e.offset().top + e.innerHeight();// 弹出菜单跟随按钮位置而移动,这里需要二次渲染(1 显示菜单,2 移动菜单)const id = btn.id + 'm';this.cMenu = id;this.$nextTick(e => { $('#' + id).css({ "top": y, "left": x }); });},// 鼠标点击全部区域,菜单区域的单击被阻断冒泡不会触发此函数pickOther: function () { this.cMenu = ''; },// 点击菜单区域时,给出当前点击的菜单名pickMenu: function () { console.log($(event.target).text()); }}});</script>
</body>
</html>
http://www.yayakq.cn/news/368740/

相关文章:

  • 公司网站如何被百度收录怎么做网站滑动图片部分
  • 汶上1500元网站建设44555pd永久四色端口
  • 企业网站可以做跨境电商吗大庆网站建设大庆
  • 郑州中心站wordpress模板用法
  • 个人信息网站模板h5如何做多页面网站
  • 擦边球网站怎么建设网站建设经费的函
  • 网站搜索功能怎样做自己可以制作微信小程序吗
  • 如何做好网站建设内容的策划保险网站大全
  • 各大搜索引擎网站登录入口企业vi设计公司定制
  • html5搭建手机网站wordpress文章中添加视频
  • 建网站免费咨询宁波网络建站
  • 企业网站的类型包括网站建设开发有限公司
  • wordpress制作官方网站网站制作怎么自己做
  • 什么网站可以做自媒体网页设计实验总结报告
  • 国外免费舆情网站有哪些软件智能小程序开发
  • 网络电商培训课程网站设计怎样重装电脑wordpress
  • 衡水网站制作企业网站内使用了哪些网络营销方式
  • 站长之家app代做课程设计的网站
  • 重庆大渡口建设网站哪个网站是教人做淘宝客的
  • 红酒哪个网站做的好微信公众号的微网站怎么做的
  • 网站软件下载app挖掘关键词爱站网
  • 开发一个大型网站需要多少钱建设网站成本预算
  • wordpress x站徐州建站费用
  • 扁平化网站后台网站页面设计怎么做
  • 网站首页像素网站头部优化文字怎么做
  • 群辉nas怎么做网站网络公司网站设计维护合同
  • 专业建站制作大数据营销心得体会
  • 西部空间官方网站wordpress数据搬移
  • 做推广都有什么网站怎么查看网站有没有备案
  • 简述一下网站的设计流程wordpress怎么在本地安装