В чем разница между screenX
/ Y
, clientX
/ Y
и pageX
/ Y
?
Также для iPad Safari расчеты похожи на настольные - ИЛИ есть какая-то разница из-за области просмотра?
Было бы здорово, если бы вы могли указать мне пример.
В чем разница между screenX
/ Y
, clientX
/ Y
и pageX
/ Y
?
Также для iPad Safari расчеты похожи на настольные - ИЛИ есть какая-то разница из-за области просмотра?
Было бы здорово, если бы вы могли указать мне пример.
Ответы:
В JavaScript:
pageX
,pageY
,screenX
,screenY
,clientX
, ИclientY
возвращает число , которое указывает число физических «CSS пикселей» точка находится от опорной точки. Точка события - это место, где пользователь щелкнул, контрольная точка - это точка в левом верхнем углу. Эти свойства возвращают горизонтальное и вертикальное расстояние от этой контрольной точки.pageX
иpageY
:относительно верхнего левого края полностью отображаемой области содержимого в браузере. Эта контрольная точка находится под строкой URL и кнопкой возврата в верхнем левом углу. Эта точка может находиться в любом месте окна браузера и может фактически изменить местоположение, если есть встроенные прокручиваемые страницы, встроенные в страницы, и пользователь перемещает полосу прокрутки.
screenX
иscreenY
:относительно верхнего левого угла физического экрана / монитора эта контрольная точка перемещается только в том случае, если вы увеличиваете или уменьшаете количество мониторов или разрешение монитора.
clientX
иclientY
:относительно верхнего левого края области содержимого ( окна просмотра ) окна браузера. Эта точка не перемещается, даже если пользователь перемещает полосу прокрутки из браузера.
Для визуального отображения, какие браузеры поддерживают какие свойства:
http://www.quirksmode.org/dom/w3c_cssom.html#t03
У w3schools есть онлайн-переводчик и редактор Javascript, чтобы вы могли видеть, что каждый из них делает
http://www.w3schools.com/jsref/tryit.asp?filename=try_dom_event_clientxy
источник
Вот картина, объясняющая разницу между
pageY
иclientY
.То же для
pageX
иclientX
, соответственно.pageX/Y
координаты относятся к верхнему левому углу всей отображаемой страницы (включая части, скрытые прокруткой),пока
clientX/Y
координаты относятся к верхнему левому углу видимой части страницы, «видимой» через окно браузера.Посмотреть демо
Вам, вероятно, никогда не понадобится
screenX/Y
источник
screenX/Y
есть?pageX/pageY
следует использовать вместоclientX/clientY
?<html>
элемента в пикселях CSS.viewport
пикселей в CSS.screen
пикселей в устройстве.Что касается вашего последнего вопроса, похожи ли расчеты в настольных и мобильных браузерах ... Для лучшего понимания - в мобильных браузерах - нам необходимо различать две новые концепции: область просмотра макета и область визуального просмотра . Визуальный видовой экран - это часть страницы, которая в данный момент отображается на экране. Окно просмотра макета является синонимом полной страницы, отображаемой в браузере на рабочем столе (со всеми элементами, которые не отображаются в текущем окне просмотра).
В мобильных браузерах
pageX
иpageY
по-прежнему относительно страницы в пикселях CSS, поэтому вы можете получить координаты мыши относительно страницы документа. С другой стороныclientX
иclientY
определите координаты мыши по отношению к визуальному окну просмотра .Здесь есть еще один поток stackoverflow, касающийся различий между визуальным окном просмотра и окном просмотра макета: Разница между визуальным окном просмотра и окном просмотра макета?
Еще один хороший ресурс: http://www.quirksmode.org/mobile/viewports2.html
источник
Что помогло мне, так это добавить событие прямо на эту страницу и кликать по себе! Откройте консоль в инструментах разработчика / Firebug и т. Д. И вставьте это:
С помощью этого фрагмента вы можете отслеживать позицию щелчка при прокрутке, перемещать окно браузера и т. Д.
Обратите внимание, что pageX / Y и clientX / Y одинаковы при прокрутке до самого верха!
источник
Разница между ними будет во многом зависеть от того, на какой браузер вы сейчас ссылаетесь. Каждый реализует эти свойства по-разному, или не реализует вообще. Quirksmode имеет отличную документацию о различиях браузеров в отношении стандартов W3C, таких как DOM и JavaScript Events.
источник