Есть ли способ найти имя div из местоположения (x, y шнуры) - программирование
Подтвердить что ты не робот

Есть ли способ найти имя div из местоположения (x, y шнуры)

Довольно легко найти местоположение div, когда вы знаете имя div. Но есть ли простой способ получить идентификатор div, когда все, что я знаю, это шнуры X/Y на экране?

В пределах диапазона div с именем "# Items1" до "# Items50" на доске (другой div) с именем #HarbourRadar не будет перекрывающихся div. Каждый элемент div #Items может содержать более одного уложенного изображения.

Во всяком случае, любой намек на то, чтобы найти div из местоположения, будет очень благодарен.

Следующий код (взятый из ответа ниже на этой стороне) получает идентификатор div #HarbourRadar, который является частично правильным, так как div #marker накладывается поверх него на один, но не возвращает div #marker, который - то есть с более высоким Z-индексом.

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

Ответ 1

Да, это возможно с помощью метода document.elementFromPoint.
Вот как это описано Microsoft. Вот Документация Mozilla.
Эта функция почти полностью совместима, как вы можете видеть в это сравнение браузера.

Вот пример кода из MDN docs:

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>

Ответ 2

Посмотрите на существующий диалог StackOverflow, который вы можете найти:

Определите, какой элемент указателя мыши находится поверх Javascript

Это использует функцию javascript document.elementFromPoint и имеет отличную демонстрацию, показывающую рабочий пример.

URL-адрес jsFiddle: http://jsfiddle.net/MPTTp/

Код скрипта:

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

    alert(elementMouseIsOver);
});