2014-07-23 3 views
0

В документации document.elementFromPoint говорится:Почему document.elementFromPoint не находит самый верхний элемент?

Возвращает элемент из документа, чей elementFromPoint метод вызываются, который является самым верхним элементом, который лежит под данной точки.

Но я не вижу такого поведения. Вместо этого он, кажется, выбирает самый нижний элемент. На самом деле это поведение, которое я хочу, но я обеспокоен тем, почему он не соответствует документации, и я хочу понять, почему во избежание возможных будущих ошибок.

Я создал a fiddle to demonstrate this. Если вы нажмете на полужирный, но неитальянный текст, он вернет B, а не P. Если вы нажмете полужирный и курсивный текст, он вернет I не P. Разве абзац не является самым верхним элементом, который содержит все эти объекты, или мое определение «самый верхний» отличается от спецификации?

Я пробовал это как на Firefox, так и на Chrome и получал одинаковый результат в каждом.

+0

Будьте очень осторожны с этим объектом, потому что он реализован по-разному в разных браузерах. Некоторые браузеры возвращают позицию x, y на основе окна, а некоторые - на видовом экране. См. Http://www.zehnet.de/2010/11/19/document-elementfrompoint-a-jquery-solution/ для хорошего объяснения. – Michael

+0

@ Майкл Нет, я не правильно прочитал вопрос (или было редактирование). И теперь я не вижу, как OP может думать, что он не должен возвращать 'I' ... Если я следую очевидным соображениям, он всегда должен возвращать элемент документа ... –

+0

@Michael спасибо, я сейчас смотрю на это. – Michael

ответ

7

Вы неверно истолковываете терминологию.

Под «самым верхним» подразумевается тот, который имеет наивысший индекс z, или выше других элементов в поле зрения, а не с точки зрения иерархии.

+0

ах хорошо, что имеет смысл. Я подумал, что это может быть что-то подобное, но z-index мне не приходил. так что это всегда самый вложенный тег, содержащий координаты с наивысшим z-упорядочением? – Michael

+0

@Michael Yep. Заметим, что это не только z-индекс. Абсолютно позиционированные элементы, которые над другими элементами также считаются «самыми большими». [Демо здесь] (http://jsfiddle.net/MXFGL/2/) –

Смежные вопросы