Можете ли вы получить положение мыши с помощью JavaScript при прокрутке? - PullRequest
0 голосов
/ 02 июня 2018

У меня есть настройка codepen, которая получает положение мыши на документе с помощью window.addEventListener('mousemove', this.mousemoveFn);, однако, если вы начнете прокручивать, взаимодействия не будут работать с положением мыши, пока вы не переместите его снова.Поэтому мой вопрос таков:

Есть ли способ получить текущую позицию мыши на странице, используя прослушиватель событий для прокрутки?window.addEventListener('scroll', callback);

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

Вот кодовая ручка: https://codepen.io/IamBramer/pen/zavoBp

1 Ответ

0 голосов
/ 02 июня 2018

Сначала ответьте:

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

см. Определение события из Колесо MDN :

        var event = {
            // keep a ref to the original event object
            originalEvent: originalEvent,
            target: originalEvent.target || originalEvent.srcElement,
            type: "wheel",
            deltaMode: originalEvent.type == "MozMousePixelScroll" ? 0 : 1,
            deltaX: 0,
            deltaY: 0,
            deltaZ: 0,
            preventDefault: function() {
                originalEvent.preventDefault ?
                    originalEvent.preventDefault() :
                    originalEvent.returnValue = false;
            }
        };

Нет свойств с положением мыши в этом объекте (подумайте о пролистывании, без положения, только направление вектор ).

Теперь ответим:

, чтобы элементы взаимодействовали с курсором мыши как при прокрутке, так и при перемещении мыши

Вы должны использовать событие mouseenter и событие mouseleave непосредственно для элементов или даже событие mouseover .

Браузер делает всю работу за вас, чтобы знать, входит ли мышь , выходит, или над элементом, когда вы прокручиваете или перемещаете.

Каккомментарий, события мыши - это события здравого смысла, если ничего не происходит (мышь не двигается), ничего не происходит, событие перемещения не происходит.Фактически, любой крючок может изменить положение мыши без уведомления вашего браузера (получить событие более низкого уровня), таким образом, не реагируя.

...