Событие пузырящейся прокрутки / колесика мыши - PullRequest
0 голосов
/ 01 июня 2011

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

Я использую GWT для этого, поэтому я предпочел бы не полагаться на решение jQuery (хотя чисто javascript-решение было бы неплохо), так как смешать их довольно сложно. Я могу зафиксировать событие колесика мыши, но главная проблема заключается в том, что он, кажется, не различает прокрутку (вверх / вниз) и наклон колеса (влево / вправо). Я пробовал eventGetShiftKey (), eventGetButton (), eventGetType () и некоторые другие, но все эти методы возвращают одинаковый точный результат для прокрутки и наклона (наклон влево = прокрутка вверх, наклон вправо = прокрутка вниз).

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

1 Ответ

6 голосов
/ 01 июня 2011

Событие Mousewheel вспыхивает, чтобы различать прокрутку вверх / вниз, используйте атрибуты event.wheelDelta и event.detail.

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

event.detail указывает количество «тиков», которые перемещало колесо мыши. Положительные значения означают «вниз / вправо», отрицательные вверх / влево.
event.axis указывает ось жеста прокрутки (горизонтальная или вертикальная). Этот атрибут был добавлен в Firefox 3.5

Также см. Эту статью , в которой немного говорится о нормализации.

...