Obtenir molette de la souris événements en jQuery?
Est-il un moyen d'obtenir la molette de la souris événements (ne parlons scroll
événements) en jQuery?
- Une recherche rapide activé ce plugin qui peuvent vous aider.
- Cette solution fonctionne pour moi : stackoverflow.com/questions/7154967/jquery-detect-scrolldown
- publié une nouvelle réponse sur ce avec DOM3 événements: stackoverflow.com/a/24707712/2256325
- Double Possible de jQuery scroll() détecter lorsque l'utilisateur arrête le défilement
- Juste une remarque sur ce point. Si vous êtes simplement désireux de détecter les changements à une entrée, et ce n'est pas la détection des changements via la molette de la souris, essayez de
$(el).on('input', ...
Vous devez vous connecter pour publier un commentaire.
Il y a un plugin qui détecte haut/bas de la molette souris et de la vitesse au cours d'une région.
DOMMouseScroll
événement est utilisé dans FF, de sorte que vous avez à écouter sur les deux.bind('DOMMouseScroll mousewheel') {
evetns developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/...e.originalEvent.wheelDelta
est pas défini dans FF23delta
:$('#el').on('mousewheel', function(e, delta) { if(delta > 0) { /*up*/ } else { /*down*/ }})
. Voir cette réponse.console.log(event.originalEvent.wheelDeltaY > 0 ? "Wheel Up " : "Wheel Down ");
delta
il donneundefined
avec Chrome Version 59.0.3071.115 (compilation Officiel) (64-bit)mousewheel
événement est non-standard et obsolètes. UtilisationWheelEvent
à la place.La liaison à la fois
mousewheel
etDOMMouseScroll
fini par travailler vraiment bien pour moi:Cette méthode est de travailler dans IE9+, Chrome 33, et Firefox 27.
Édition - Mars 2016
J'ai décidé de réexaminer cette question, puisque c'est un tout. Le MDN page de l'événement scroll est un excellent moyen de récupérer la position de défilement qui rend l'utilisation de
requestAnimationFrame
, ce qui est hautement préférable à mon précédent de la méthode de détection. J'ai modifié leur code afin de fournir une meilleure compatibilité en outre à la direction de défilement et de la position:JS:
Voir le Pen Vanilla JS de Défilement de Suivi par Jesse Dupuy (@blindside85) sur CodePen.
Ce code est actuellement en train de travailler dans
Chrome v50, Firefox v44, Safari v9, and IE9+
Références:
Dès maintenant en 2017, il vous suffit d'écrire
Fonctionne avec Firefox courant 51, Chrome 56, IE9+
Réponses à parler de "la roulette de la souris" événement fait référence à une déconseillé de l'événement. La norme de l'événement est tout simplement "la roue". Voir https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel
wheel
événement est pris en charge surEdge
pasIE
qui n'est pas la même chose. CanIuseCela a fonctionné pour moi:)
de stackoverflow
Ici est de vanille en solution. Peut être utilisé en jQuery si l'événement s'est passé à la fonction est
event.originalEvent
qui jQuery met à la disposition des propriété de jQuery événement. Ou si à l'intérieur de lacallback
fonction vertu de nous ajouter avant la première ligne:event = event.originalEvent;
.Ce code normalise la vitesse de la roue ou de la quantité et est positif pour ce qui serait un avant de défilement dans un cadre typique de la souris, et négative vers l'arrière de la souris mouvement de la roue.
Démo: http://jsfiddle.net/BXhzD/
Il y a aussi un plugin pour jQuery qui est plus de commentaires dans le code, et certains de sucre supplémentaire: https://github.com/brandonaaron/jquery-mousewheel
C'est de travailler chacun dans IE, Firefox et google Chrome versions les plus récentes.
J'étais coincé dans cette question aujourd'hui et j'ai trouvé ce code fonctionne très bien pour moi
utiliser ce code
ma combinaison qui ressemble à ça. elle s'estompe et disparaît dans chaque défiler vers le bas/vers le haut. sinon, vous devez faire défiler jusqu'à l'en-tête, pour la décoloration de l'en-tête de.
ci-dessus, on n'est pas optimisée pour le tactile/mobile, je pense que ce qu'on fait de mieux pour tous les mobiles:
Le plugin @DarinDimitrov posté,
jquery-mousewheel
, est rompu avec jQuery 3+. Il serait plus judicieux d'utiliserjquery-roue
qui fonctionne avec jQuery 3+.Si vous ne voulez pas aller à l'jQuery route, MDN fortement mises en garde à l'aide de l'option
molette de la souris
événement que c'est non standard et non pris en charge dans de nombreux endroits. Il dit en revanche que vous devez utiliser l'optionroue
événement comme vous obtenez beaucoup plus de précision sur exactement ce que les valeurs que vous obtenez veux dire. Il est pris en charge par la plupart des principaux navigateurs.Si vous utilisez mentionné jquery plugin molette de la souris, alors que penser de l'utilisation de la 2eme argument de la fonction de gestionnaire d'événement -
delta
:J'ai eu le même problème récemment, où
$(window).mousewheel
était de retourundefined
Ce que j'ai fait était
$(window).on('mousewheel', function() {});
Plus pour le traiter, je suis en utilisant: