Javascript ElementFromPoint用于绝对定位的元素?
我使用elementFromPoint来查找鼠标事件被ui掩码捕获后要传递给哪个元素。我在掩码处捕获事件,隐藏掩码,然后使用elementFromPoint(event.pageX,event.pageY)获取底层元素 问题是elementFromPoint对于绝对定位的元素似乎根本不起作用。它只给出第一个非绝对定位的父对象。是否有一种方法可以同时获取绝对位置和非绝对位置的元素,或者在获取带有elementFromPoint的父元素后,我只需手动搜索绝对位置的子元素Javascript ElementFromPoint用于绝对定位的元素?,javascript,jquery,css-position,absolute,Javascript,Jquery,Css Position,Absolute,我使用elementFromPoint来查找鼠标事件被ui掩码捕获后要传递给哪个元素。我在掩码处捕获事件,隐藏掩码,然后使用elementFromPoint(event.pageX,event.pageY)获取底层元素 问题是elementFromPoint对于绝对定位的元素似乎根本不起作用。它只给出第一个非绝对定位的父对象。是否有一种方法可以同时获取绝对位置和非绝对位置的元素,或者在获取带有elementFromPoint的父元素后,我只需手动搜索绝对位置的子元素 谢谢我尝试并创建了代码,它工
谢谢我尝试并创建了代码,它工作得非常好 html js
我尝试并创建了代码,它工作得非常好 html js
我的经验是常规的旧文档。elementFromPoint(…)也适用于绝对定位的元素,但它对元素的“顺序”很敏感(哪个元素真正“在前面”)。我发现,有时为了让它按我想要的方式工作,我必须在绝对定位元素上显式指定CSS“z-index”(有时正值为10或更多)
如果元素没有背景,只包含文本,这尤其是一个问题,因为所有元素都将在同一时间在同一位置可见。从外表上看,很难判断哪一个是真正的“在前面”,也许不是你想的那个 我的经验是常规的旧文档。elementFromPoint(…)也适用于绝对定位的元素,但是它对元素的“顺序”很敏感(哪个元素真正“在前面”)。我发现,有时为了让它按我想要的方式工作,我必须在绝对定位元素上显式指定CSS“z-index”(有时正值为10或更多)
如果元素没有背景,只包含文本,这尤其是一个问题,因为所有元素都将在同一时间在同一位置可见。从外表上看,很难判断哪一个是真正的“在前面”,也许不是你想的那个 elementFromPoint应适用于绝对定位的图元。你能提供一个JSFIDLE来重现你的问题吗?嗯,所以我只是制作了一个JSFIDLE,但一切都像我认为应该的那样工作。一定是我的代码中的某个地方出现了一个无关错误:S感谢您的帮助。Derp,我使用的是与视口相关的点,而不是事件(facepalm)元素的pageX和pageY FromPoint应该适用于绝对位置的元素。你能提供一个JSFIDLE来重现你的问题吗?嗯,所以我只是制作了一个JSFIDLE,但一切都像我认为应该的那样工作。一定是我的代码中的某个不相关的错误:S感谢您的帮助。Derp,我使用的是与视口相关的点,而不是事件的pageX和pageY(facepalm)
<div id="one">1</div>
<div id="two">2</div>
<div id="three">3</div>
<div id="four">4</div>
<div id="five">5</div>
<div id="six">6</div>
div {
width: 50px;
height: 50px;
background-color: black;
color: white;
margin-bottom: 30px;
}
#five{
position: absolute;
left: 10px;
top: 20px;
background: red;
}
$(document).ready(function(){
$(document.body).bind('click', function(e){
var elem = document.elementFromPoint(e.pageX, e.pageY);
alert('you selected element id: ' + elem.id);
});
});