【发布时间】:2015-10-10 12:21:19
【问题描述】:
我知道这里有一个类似的问题:
CSS3 Element with Opacity:0 (invisible) responds to mouse events
但这个问题是不同的。
我正在尝试使用此处提到的 jQuery、CSS 为移动设备实现汉堡导航菜单:Demo。
这主要是有效的,但有一个问题。在上面的演示中,他们通过设置opacity:0 隐藏了一个已固定在顶部(top:0;left:0)的导航 div。虽然在上面的演示中这很完美,但当我实现它时,隐藏的 div 会响应点击并离开页面。
我不明白在上面的演示中这是如何被禁用的(仔细检查了 css / js 文件,但没有任何线索)。其他人有想法吗?我真的不能摆弄小提琴,因为我在 SharePoint 中尝试这个并且在小提琴中它可以工作。我只需要了解即使在使用opacity:0 时他们如何禁用点击事件,以便我可以复制它。谢谢。
【问题讨论】:
-
一般用
visibility:hidden;完成。 -
@Xufox 我知道这一点,但在演示中,他们仅通过使用 opacity:0 就实现了这一点。我检查了 css 的边距/填充更改,但找不到它们。
-
你可以给 div 元素设置 pointer-events: none 吗??
-
@FarzadYZ
pointer-events可以解决问题,但它不是跨浏览器的解决方案。正如@Xufox 建议的那样,我宁愿选择visibility: hidden。 -
@Akhoy 我猜z-index技巧解决了他们的可点击区域问题。 nav元素为z-index:0,contentLayer为z-index:5,表示对于用户鼠标事件,第一优先级是contentLayer部分。
标签: jquery html css hamburger-menu