Привет. Сегодня рассмотрим вопрос, который возможно негласно висит у многих в головах.
Особенно у тех, кто не очень внимательно читал документацию.

Вопрос в следующем: в чем же существенная разница между e.pageX и e.screenX доступных внутри объекта event в событиях типа click или mousedown в JS и jQuery.

Как и следует из названия, e.pageX — это координаты относительно страницы, e.screenX — относительно экрана. Чаще всего эти переменные вообще одинаковые. Большинство людей просматривают страницы развернув браузер на весь экран, поэтому для них разница между e.pageX и e.screenX будет не заметна. Особенно плохо, если начинающий разработчик подумает, что раз они одинаковы, то без разницы какую из них использовать.

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

Суть этой разницы проявляется если используются дополнительные мониторы. На мониторе, который стоит слева от основного (и это указано в настройка ОС, что он стоит слева), координата в e.screenX будет отрицательной. Она будет уменьшаться от 0 в самой правой точке монитора до отрицательного значения разрешения монитора по длине.

С одной стороны, эта тонкость может принести чудовищные неудобства, если использовать e.screenX на ровне с e.pageX. Но с другой стороны, эта фишка поможет вам определить, что для просмотра используется дополнительный монитор.


Обратите внимание: если у вас не очень большой коммерческий интернет-проект, который пока не позволяет организовать собственный IT тдел, то лучше отправить управление IT (в том числе и администрирование сервера) на аутсорс. Специалисты справятся с задачей на высшем уровне, за приемлемую плату. Смотрите регламент обслуживания сервера, чтобы понимать о каких возможностях идет речь.