Top.Mail.Ru
Ответы

Вопрос про доступность нахождения расположения курсора на экране.

Здравствуйте. Понимаю, что это не совсем программистский форум, но на таких регистрироваться желания нет, поэтому, дабы увеличить вероятность сокращения количества впустую потраченного времени, задаю вопрос тут.
Если кто - нибудь дочитал (дотерпел) до сюда, то вот суть вопроса:
Есть clientX и clientY координаты курсора. Так вот, эти свойства доступны только тогда, когда вызывается событие движения мыши "onmousemove". Также, заметил, что эти вещи читаются, когда я нажимаю на какой - нибудь объект (не уверен, тыкал только кнопку и блок, но, весьма вероятно, это должно работать с любым объектом dom). Также предположу, что это работает с некоторыми другими событиями, например с "onmouseover". В любом случае, мышь как - то используется.

Меня интересует не конкретно техническая реализация нестандартных случаев, а только смысл именно такого поведения. Почему х и у мышки недоступен во все время работы (как свойство "width" блока, к примеру), а только когда она используется? В целях оптимизации? Но ведь её положение все равно хранится где - то, она же отображается на мониторе. К тому же, две циферки вряд ли займут много места. Может быть, для безопасности? Если да, то в чем именно?
Тут недавно понял, что расположение привязано именно как свойство события event.clientX, а не как свойство какого - то объекта мыши, чего раньше в упор не замечал, странно... Однако, и это не продвинуло меня к ответу.
Почему так сделано, в чем смысл?
------------------
Игра в ищущего сыщика ни к чему не привела, или я не слишком внимателен.
Сижу вот тут сейчас и жду офигенно простой и гениальный ответ, который перевернёт к чертям собачьим моё сознание и весь этот бренный мир, и раскроет все тайны мироздания, и улетит в вечное бесконечное, теряя тапки.
Заранее благодарю за текст, и удачи✋.

По дате
По рейтингу
Аватар пользователя
Новичок

onmousemove — это событие, состоящие в перемещении курсора над каким-то элементом. Неподвижный курсор события не представляет. Если вам нужно иметь доступ к положению указателя в любой момент, то вы можете записывать его в одну или две переменные при каждом событии onmousemove, а потом читать из этих переменных в любое удобное для вас время.

В более близких к операционке системах (вроде Delphi, например) можно узнавать положение курсора в любой момент. Но там совсем другая история: в таких системах можно писать сколь угодно крутые и опасные программы. В этом плане возможности JavaScript на страничках ограничены теми целями, для которых используется браузер.