¿Hay alguna manera de obtener los eventos de la rueda del mouse (sin hablar de scroll
eventos) en jQuery?
javascript
jquery
mousewheel
thejh
fuente
fuente
$(el).on('input', ...
Respuestas:
Hay un complemento que detecta la rueda del mouse arriba / abajo y la velocidad sobre una región.
fuente
fuente
DOMMouseScroll
evento se usa en FF, por lo que debe escuchar en ambos.bind('DOMMouseScroll mousewheel') {
eventos developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/…e.originalEvent.wheelDelta
no está definido en FF23Me uní a ambos
mousewheel
yDOMMouseScroll
terminé funcionando muy bien para mí:Este método funciona en IE9 +, Chrome 33 y Firefox 27.
Editar - Mar 2016
Decidí revisar este problema ya que ha pasado un tiempo. La página MDN para el evento de desplazamiento tiene una excelente manera de recuperar la posición de desplazamiento que utiliza
requestAnimationFrame
, lo cual es muy preferible a mi método de detección anterior. Modifiqué su código para proporcionar una mejor compatibilidad además de la dirección y posición de desplazamiento:Este código está trabajando actualmente en
Chrome v50, Firefox v44, Safari v9, and IE9+
Referencias
fuente
A partir de ahora en 2017, puedes escribir
Funciona con Firefox 51 actual, Chrome 56, IE9 +
fuente
Las respuestas que hablan sobre el evento "mousewheel" se refieren a un evento en desuso. El evento estándar es simplemente "rueda". Ver https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel
fuente
wheel
evento no es compatible conEdge
loIE
que no es lo mismo. CanIuseEsto funcionó para mí :)
de stackoverflow
fuente
Aquí hay una solución de vainilla. Se puede usar en jQuery si el evento pasado a la función es el
event.originalEvent
que jQuery pone a disposición como propiedad del evento jQuery. O si dentro de lacallback
función debajo agregamos antes de la primera línea:event = event.originalEvent;
.Este código normaliza la velocidad / cantidad de la rueda y es positivo para lo que sería un desplazamiento hacia adelante en un mouse típico, y negativo en un movimiento hacia atrás de la rueda del mouse.
Demostración: http://jsfiddle.net/BXhzD/
También hay un complemento para jQuery, que es más detallado en el código y un poco de azúcar extra: https://github.com/brandonaaron/jquery-mousewheel
fuente
Esto funciona en cada versión de IE, Firefox y Chrome.
fuente
Hoy me quedé atrapado en este problema y descubrí que este código funciona bien para mí.
fuente
usa este código
fuente
mi combinación se ve así. se desvanece y se desvanece en cada desplazamiento hacia abajo / arriba. de lo contrario, debe desplazarse hacia arriba al encabezado, para desvanecer el encabezado.
el anterior no está optimizado para touch / mobile, creo que este lo hace mejor para todos los móviles:
fuente
El plugin que @DarinDimitrov publicada,
jquery-mousewheel
, se rompe con jQuery 3+ . Sería más recomendable utilizarjquery-wheel
qué funciona con jQuery 3+.Si no desea seguir la ruta jQuery, MDN advierte altamente el uso del
mousewheel
evento, ya que no es estándar y no es compatible en muchos lugares. En cambio, dice que debe usar elwheel
evento ya que obtiene mucha más especificidad sobre exactamente lo que significan los valores que está obteniendo. Es compatible con la mayoría de los principales navegadores.fuente
Si se utiliza mencionado jQuery plugin de la rueda del ratón , entonces ¿qué pasa a utilizar el segundo argumento de la función de controlador de eventos -
delta
:fuente
Tengo el mismo problema recientemente donde
$(window).mousewheel
estaba regresandoundefined
Lo que hice fue
$(window).on('mousewheel', function() {});
Además para procesarlo estoy usando:
fuente