这是我的HTML:
<div id="one"><div id="element1"></div></div>
<div id="two">some stuff</div>
div one
和two
是相同宽度和高度的矩形
这是CSS:
#one { position: relative; width: 390px; height: 482px; }
#two { position: relative; z-index: 100; top: -482px; width: 390px; height: 482px; }
正如您所见,div two
位于用作掩码的div one
上方
我需要做类似的事情:
$('#element1').mouseover(function(e){ alert('Hello') });
我在div mousemove
上使用two
并检查鼠标位置是x
和x + width
element1
之间(相对于父div { {1}})和one
同样的事情。
当我将y
应用于-webkit-transform:rotate(45deg);
我是新手,无法发布图片,但很容易理解div element1
上mousemove
处理的区域与two
div不对应它是旋转的。
如何知道鼠标何时移动到element1
以上?
答案 0 :(得分:1)
基本上你的问题是div two
涵盖了另一个元素,不允许在覆盖的元素中注册任何事件。
您可以通过将CSS pointer-events:none;
应用于div two
来修复此问题,以允许在div下方注册事件。
DEMO - 在div pointer-events:none;
上使用two
DEMO使用您发布的确切代码,并添加以下视觉表示和轮换:
#one{
border: 1px solid red;
}
#element1{
background-color: blue;
border: 1px solid blue;
transform:rotate(45deg);
-webkit-transform:rotate(45deg);
-ms-transform:rotate(45deg);
-moz-transform:rotate(45deg);
height: 5px;
}
CSS改为#two
:
#two {
position: relative;
pointer-events:none;
z-index: 100;
top: -482px;
width: 390px;
height: 482px;
}