Есть ли способ получить события колеса мыши (не говоря уже о scroll
событиях) в jQuery?
javascript
jquery
mousewheel
thejh
источник
источник
$(el).on('input', ...
Ответы:
Есть плагин, который определяет движение колесика мыши вверх / вниз и скорость в регионе.
источник
источник
DOMMouseScroll
Событие используется в FF, так что вы должны слушать на обоих.bind('DOMMouseScroll mousewheel') {
evetns developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/...e.originalEvent.wheelDelta
не определено в FF23Привязка к обоим
mousewheel
и вDOMMouseScroll
итоге очень хорошо работала для меня:Этот метод работает в IE9 +, Chrome 33 и Firefox 27.
Изменить - март 2016 г.
Я решил вернуться к этому вопросу, так как это было давно. На странице MDN для события прокрутки есть отличный способ получить используемую позицию прокрутки, что намного
requestAnimationFrame
предпочтительнее моего предыдущего метода обнаружения. Я изменил их код, чтобы обеспечить лучшую совместимость в дополнение к направлению и положению прокрутки:Этот код в настоящее время работает в
Chrome v50, Firefox v44, Safari v9, and IE9+
Ссылки:
источник
На данный момент в 2017 году вы можете просто написать
Работает с текущими версиями Firefox 51, Chrome 56, IE9 +
источник
Ответы, говорящие о событии "колесико мыши", относятся к устаревшему событию. Стандартное мероприятие - это просто «колесо». См. Https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel
источник
wheel
событие поддерживаетсяEdge
не на том,IE
что не одно и то же. CanIuseЭто сработало для меня :)
из stackoverflow
источник
Вот ванильный раствор. Может использоваться в jQuery, если в функцию передается событие,
event.originalEvent
которое jQuery делает доступным как свойство события jQuery. Или , если внутриcallback
функции при добавлении Перед первой строки:event = event.originalEvent;
.Этот код нормализует скорость / величину колеса и положителен для прокрутки вперед в типичной мыши и отрицателен при движении колеса мыши назад.
Демо: http://jsfiddle.net/BXhzD/
Также есть плагин для jQuery, который более подробный в коде и немного лишнего сахара: https://github.com/brandonaaron/jquery-mousewheel
источник
Это работает во всех последних версиях IE, Firefox и Chrome.
источник
Сегодня я застрял в этой проблеме и обнаружил, что этот код у меня работает нормально
источник
используйте этот код
источник
моя комбинация выглядит так. он исчезает и исчезает при каждой прокрутке вниз / вверх. в противном случае вам придется прокручивать до заголовка, чтобы его можно было скрыть.
приведенный выше не оптимизирован для сенсорных / мобильных устройств, я думаю, что этот лучше подходит для всех мобильных устройств:
источник
Плагин, опубликованный @DarinDimitrov
jquery-mousewheel
, не работает из-за jQuery 3+ . Целесообразнее использовать тот,jquery-wheel
который работает с jQuery 3+.Если вы не хотите идти по маршруту jQuery, MDN настоятельно предостерегает от использования этого
mousewheel
события, так как оно нестандартно и не поддерживается во многих местах. Вместо этого он говорит, что вы должны использоватьwheel
событие, поскольку вы получаете гораздо больше конкретики в отношении того, что именно означают получаемые вами значения. Он поддерживается большинством основных браузеров.источник
Если вы используете упомянутый плагин jquery mousewheel , то как насчет использования 2-го аргумента функции обработчика событий -
delta
:источник
У меня недавно возникла такая же проблема, когда
$(window).mousewheel
возвращалсяundefined
То, что я сделал, было
$(window).on('mousewheel', function() {});
В дальнейшем для его обработки я использую:
источник