Браузерный баг с clientX/Y
Демка: https://tamtakoe.github.io/clientXY-bug/
Если в кратце, то ситауция такая, что курсор находится на одном месте, но в определенных ситуациях его координаты меняются (clientX/Y, pageX/Y, screenX/Y - все). Разумеется окно браузера остаётся на месте и никакие размеры там не меняются. Бывает, что баг сразу не воспроизводится, но после пары попыток повторится. Пробовал в последнем Хроме и Фаерфоксе). Посмотрите, пожалуйста, у себя. Куда, кстати, о багах писать. Где приемная у разработчиков браузеров? |
Меняется на другие или на те же?
Если на те же, просто срабатывает событие - то это известные глюки винды. Если на другие - глюки твоего мыша.) |
Win7 x64, Google v66.0.3359.139
По-моему ошибок нет, все работает, как часы. Добавьте этот скрипт на страницу и сравните координаты мыши и координаты события: document.body.addEventListener('mousemove',function(e){ document.querySelector('#focus-input').value=e.clientX+':'+e.clientY; var list=[].slice.call(document.querySelectorAll('#log-container div')); list.pop();list.pop(); list.forEach(node=>node.parentNode.removeChild(node)); }); У вас в лог записываются разные координаты, потому что вы не останавливаете свою мышь сразу после срабатывания события mouseover. |
Обновил пример. Добавил указатель курсора и сразу стало видно, что сам дурак)
Получалось, что запоминались координаты вхождения курсора в элемент. После чего он проходил какое-то расстояние в элементе, а при прокручивании списка разумеется показывались его текущие координаты. От того и разница. День потрачен на борьбу с ветряными мельницами. Всем спасибо, пойду учиться программировать) |
Часовой пояс GMT +3, время: 08:50. |