[英]How to ignore Onmouseover in javascript on div with absolute position
我有以下代码:
<body>
<div id="div1" style="position: absolute;"></div>
<div id="div2" onmouseover="not handling"></div>
</body>
div1 覆盖 div2。 我需要在 div2 上处理onmouseover
。 我假设 div1 处理onmouseover
事件并将其推迟到正文(因为正文是父元素)。 我无法将 div1 更改为 div2 的“子级”。 有任何想法吗?
编辑:div1 是半透明的,必须始终可见,div2 由颜色填充(不透明)。 div2 也始终可见,因为 div1 是半透明的。 我不能在 div2 里面有 div1。
堆叠顺序(最大 z-index)中最高的元素将接收 onmouseover 事件。
为了达到预期的效果,将 div2 包裹在另一个具有最高 z-index 的 div 中,给 div2 一个比叠加层低的 z-index。
由于 div3 与 div2 具有相同的边界框,因此我们为其附加了一个 onmouseover 事件,并让事件处理程序对 div2 进行操作。
<body>
<div id="div1" style="position: absolute; z-index: 10; left:0; top; 0; width: 100%; height: 100%; opacity: 0.25; background-color: black;"></div>
<div id="div3" style="z-index: 20; position: relative;">
<div id="div2" style="z-index: 0; position: relative;">
</div>
</div>
</body>
忘记 z-index,因为您希望显示 div1,而不是在 div2 后面。
尝试在 div1 上使用 pointer-events:none,因为您不希望它影响 onmouseover 事件。
<body>
<div id="div1" style="position: absolute; pointer-events:none"></div>
<div id="div2"></div>
</body>
两个建议尝试,对你的 CSS 或页面布局一无所知:
通过在 div 上添加 z-index,使 div2 的 z-index 高于 div1 的 z-index
例如
<body>
<div id="div1" style="position: absolute; z-index: -1"></div>
<div id="div2" style="position: relative; z-index: 1000" onmouseover="alert('mousemove')"></div>
</body>
z-index 指定元素的堆栈顺序(也可以是负数)。
问题是您无法通过div 单击(或鼠标悬停)。 因此,当 div1 高于 div2 时,您就会遇到问题。
是否可以对 div1 和 div2 使用绝对/相对定位,并为 div2 使用比 div1 更大的 z-index?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.