16

当您知道 div 名称时,很容易找到 div 的位置。但是,当我只知道屏幕的 X/Y 线时,有没有一种简单的方法来获取 div id?

在名为#HarbourRadar 的板(另一个 div)上名为“#Items1”到“#Items50”的 div 范围内不会有重叠的 div。每个 div #Items 中可以包含多个堆叠图像。

无论如何,任何从某个位置找到 div 的提示都将不胜感激。

以下代码(取自下面的答案)获取 div #HarbourRadar 的 id,这是部分正确的,因为 div #marker 在那个上面分层,但不返回选择的 div #marker -即具有较高Z-index 的一种。

var pos = $("#marker").position();
alert(document.elementFromPoint(pos.left, pos.top).id);
4

2 回答 2

18

是的,可以使用该document.elementFromPoint方法。
这是Microsoft记录的方式。这是Mozilla 文档
该功能几乎完全兼容,正如您在此浏览器比较中看到的那样。

以下是 MDN 文档中的一些示例代码:

function changeColor(newColor) {
  elem = document.elementFromPoint(2, 2);
  elem.style.color = newColor;
}
<p id="para1">Some text here</p>
<button onclick="changeColor('blue');">blue</button>
<button onclick="changeColor('red');">red</button>

于 2013-02-09T11:25:51.240 回答
2

看看这个现有的 StackOverflow 对话,您可能会发现这会有所帮助:

在Javascript中确定鼠标指针位于哪个元素之上

这是使用 javascript 函数document.elementFromPoint,并有一个很好的演示,展示了一个工作示例。

jsFiddle URL 是:http: //jsfiddle.net/MPTTp/

小提琴中的代码:

$(window).click(function(e) {
    var x = e.clientX, y = e.clientY,
        elementMouseIsOver = document.elementFromPoint(x, y);

    alert(elementMouseIsOver);
});
于 2013-02-09T11:48:23.497 回答