如何使不透明度为 0 的元素不可点击
How to make an element with opacity 0 unclickable
我知道这里存在类似的问题:
CSS3 Element with Opacity:0 (invisible) responds to mouse events
但是这个问题不一样
我正在尝试使用 jQuery、CSS 为移动设备实现汉堡包导航菜单,如下所述:Demo.
这主要有效,但有一个问题。在上面的演示中,他们通过设置 opacity:0
隐藏了固定在顶部 (top:0;left:0
) 的导航 div。虽然在上面的演示中效果很好,但当我实现它时,隐藏的 div 会响应点击并离开页面。
我不明白上面的演示是如何禁用它的(仔细检查了 css / js 文件,但没有任何线索)。还有其他人有想法吗?我无法真正提出 fiddle,因为我正在 SharePoint 中尝试此操作,并且在 fiddle 中它有效。我只需要了解他们是如何在使用 opacity:0
时禁用点击事件的,这样我就可以复制它。谢谢。
您(至少)可以做两件事。您可以使用 display: none;
或 visibility: hidden;
而不是 opacity: 0;
,或者您可以使用 jQuery.
中的 preventDefault 函数阻止菜单项被点击
preventDefault 会像这样工作:
$("#hamburger").click(function(e){
if ($(this).css('opacity')==0) e.preventDefault();
});
以上代码归功于 Popnoodles (Hide clickable links inside div when opacity is 0)
编辑:我可能误解了你的问题,因为我现在让汉堡包图标不可点击,而我认为你提到导航菜单需要不可点击,对吗?
应该像这样工作:
$('a[class="nav-link"]').click(function(e){
if ($(nav).css('opacity')==0) e.preventDefault();
});
将 class nav-link
添加到导航菜单中的链接。
他们使用的实现是使用 z-index 属性 来更改用户鼠标将引用的访问层。这意味着具有较低 z-index 的元素将位于具有较高 z-index 的元素的下层。请注意,z-index 的默认值为 1。只需为导航元素提供 z-index:-1;
和内容层 z-index:1
或更高级别即可实现正确的反应。
我知道这里存在类似的问题:
CSS3 Element with Opacity:0 (invisible) responds to mouse events
但是这个问题不一样
我正在尝试使用 jQuery、CSS 为移动设备实现汉堡包导航菜单,如下所述:Demo.
这主要有效,但有一个问题。在上面的演示中,他们通过设置 opacity:0
隐藏了固定在顶部 (top:0;left:0
) 的导航 div。虽然在上面的演示中效果很好,但当我实现它时,隐藏的 div 会响应点击并离开页面。
我不明白上面的演示是如何禁用它的(仔细检查了 css / js 文件,但没有任何线索)。还有其他人有想法吗?我无法真正提出 fiddle,因为我正在 SharePoint 中尝试此操作,并且在 fiddle 中它有效。我只需要了解他们是如何在使用 opacity:0
时禁用点击事件的,这样我就可以复制它。谢谢。
您(至少)可以做两件事。您可以使用 display: none;
或 visibility: hidden;
而不是 opacity: 0;
,或者您可以使用 jQuery.
preventDefault 会像这样工作:
$("#hamburger").click(function(e){
if ($(this).css('opacity')==0) e.preventDefault();
});
以上代码归功于 Popnoodles (Hide clickable links inside div when opacity is 0)
编辑:我可能误解了你的问题,因为我现在让汉堡包图标不可点击,而我认为你提到导航菜单需要不可点击,对吗?
应该像这样工作:
$('a[class="nav-link"]').click(function(e){
if ($(nav).css('opacity')==0) e.preventDefault();
});
将 class nav-link
添加到导航菜单中的链接。
他们使用的实现是使用 z-index 属性 来更改用户鼠标将引用的访问层。这意味着具有较低 z-index 的元素将位于具有较高 z-index 的元素的下层。请注意,z-index 的默认值为 1。只需为导航元素提供 z-index:-1;
和内容层 z-index:1
或更高级别即可实现正确的反应。