Использование jQuery для поиска элемента в определенной позиции?
Есть ли способ в jQuery для выбора элемента, расположенного в определенной позиции?
Например, могу ли я выбрать элемент, который находится слева: 100 и сверху: 300 в абсолютном положении?
Было бы неплохо, если бы я мог выбрать элемент, расположенный в диапазоне позиций, например, выбрать элемент, который находится слева: 100 - 150 px top 200 - 280px.
Ответы
Ответ 1
Вы ищете метод .elementFromPoint()
JavaScript/DOM.
var elem = document.elementFromPoint(100, 100) // x, y
Это возвращает DOM node
, который, конечно же, может быть завернут в объект jQuery:
$(elem).remove(); // for instance
Я не осведомлен о совместимости кросс-браузера, и мне бы хотелось, чтобы некоторые ребята знали, как лучше отредактировать этот пост или написать комментарий об этом.
Ссылка: .elementFromPoint()
Пример ссылки: http://www.jsfiddle.net/YjC6y/22/
Ответ 2
Если вы знаете точные координаты относительно документа:
function getElsAt(top, left){
return $("body")
.find("*")
.filter(function() {
return $(this).offset().top == top
&& $(this).offset().left == left;
});
}
Другой ответ останавливается при первом наложении.