我有一个位于页面大块上方的div,这会导致div下面的内容不再可选择/可点击。
有没有办法解决这个问题?即:使div没有任何可点击的功能吗?
#page {
width: 980px;
padding: 0px;
margin-top: 0px;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
position: relative;
}
#overlay {
margin: 0px;
padding: 0px;
height: 536px;
width: 422px;
position: absolute;
top: -4px;
right: -20px;
background-image: url(../images/overlay_full.png);
background-repeat: no-repeat;
background-position: left top;
}
答案 0 :(得分:14)
在叠加层上使用css属性“pointer-events”:
#overlay {
pointer-events: none;
}
请参阅:HTML “overlay” which allows clicks to fall through to elements behind it
答案 1 :(得分:1)
如果你真的希望div覆盖下面的(可点击的)东西,那么就没有办法了。一种不合时宜的方式可能是隐藏mousedown上的元素并重新显示它onmouseup:
document.body.addEventListener("mousedown", function() { getElementById("overlay").style = "display:none;" });
document.body.addEventListener("mouseup", function() { getElementById("overlay").style = "display:block;" });
但是请注意,这会导致每次mousedown重新流动,因此会达到性能。
答案 2 :(得分:0)
您可以使用css z-index
属性使可点击对象与此蒙版重叠。看看它是如何工作的:
答案 3 :(得分:0)
如果您将叠加层放在容器div中,设置为:
,这是一种欺骗方法吗?position:fixed;
overflow:display;
width:0px;
height:0px;
后来导致它没有命中区域,但仍然可见。但是我不知道这是否是跨浏览器安全的,实际上可能是错误的结果。