Как получить недостающие координаты при mousemove javascript - PullRequest
0 голосов
/ 14 июля 2020

Если я быстро перемещаю мышь, некоторые пиксели отсутствуют, если вы проверите вывод моей консоли ниже, вы увидите разницу.

(index):325 new y -  131
(index):326 old x -  462
(index):327 old y -  103
(index):324 new x -  484
(index):325 new y -  161
(index):326 old x -  474
(index):327 old y -  131
(index):324 new x -  498
(index):325 new y -  229
(index):326 old x -  484

в какой-то момент e.clientX равен 462, и он внезапно перешел в 484, а затем 474.

Мне нужны недостающие пиксели для расчетов.

1 Ответ

0 голосов
/ 14 июля 2020

Браузер может получать эту информацию только каждый раз, когда происходит событие, то есть каждый кадр. НЕ каждый пиксель. Он не может охватить каждую точку между ними. Самое близкое, что вы можете сделать, - это проверить время с последнего и текущее время и попытаться угадать, где оно было между кадрами. getTime() возвращает миллисекунды. Если вы возьмете это минус последний getTime(), вы узнаете, сколько времени потребовалось для запуска события (это зависит от скорости браузера пользователя, других фоновых процессов и т. Д. c ... события не запускаются идеально). Таким образом, вы можете выяснить, где была мышь в какой-то момент между событиями.

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

Изменить как указано в комментарии, вы не узнаете фактическое положение между этими кадрами, а только положение, если пользователь переместил мышь в прямая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...