La liaison à la molette de défilement lorsque plus d'un div
Je suis de la création d'un éditeur d'image dans le navigateur et j'ai obtenu le code pour l'ensemble de mes contrôles effectués. Maintenant, je voudrais pour carte touches de raccourci et les boutons de la souris. Le clavier est facile, mais la souris n'est pas.
J'ai besoin de détecter lorsque la souris est sur la toile div et lorsque la molette de la souris est déplacé au-dessus d'elle. La souris sur la partie n'est pas difficile, sa liaison à la molette de la souris que je vais avoir des ennuis avec.
J'ai essayé jQuery.scroll
mais que seuls les coutures au travail si l' div
en vertu de la roue est mise à défilement lui-même. Mon canvas
ne l'est pas. C'est le décalage est contrôlée par l'intermédiaire de mes scripts.
Choses à noter:
- Je suis à l'aide de jQuery que ma base.
- Je ne suis pas actuellement de défilement quoi que ce soit, j'essaie de lier et de manifestation de la molette de défilement sans défilement.
Structure
<div id="pageWrap">
[page head stuff...]
<div id="canvas">
[the guts of the canvas go here; lots of various stuff...]
<div>
[page body and footer stuff...]
</div>
Vous devez vous connecter pour publier un commentaire.
Importante mise à Jour 01/2015 - la roulette de la souris événement obsolète:
En attendant la
molette de la souris
événement est obsolète et remplacé parroue
.MDN Docs pour de la molette de la dire:
Maintenant, vous devriez utiliser quelque chose comme:
P. S.
Pour la commentaire de Connell Watkins - "Pourriez-vous expliquer la division par 120?",
il y a quelques détails sur MSDN:
J'ai laissé de côté le
delta /120
partie dans ma méthode car il n'y a aucun avantage de l'OMI. Le défilement estdelta > 0
et basdelta < 0
. Simple.Très facile de mise en œuvre ressemblerait à:
http://www.jsfiddle.net/5t2MN/5/
e.originalEvent.wheelDelta
. Je l'ai testé sur Chrome.e.originalEvent.wheelDelta
comme Esteban a suggéré. Vous pouvez consulter le violon ici: http://jsfiddle.net/KyleMit/25btn/ La raison en est que la manifestation de l'objet jQuery gestionnaire d'événement ne correspond pas à l'soulevées événement. wheelData est un non-événement standard de la propriété qui n'est plus passé dans le jQuery événement, mais elle est toujours disponible à partir de la source d'origine de l'événement qui a déclenché l'appel.Avez-vous essayé la roulette de la souris plugin?
http://www.ogonek.net/mousewheel/jquery-demo.html
Un exemple simple pour lier la molette de la souris avec jquery.....
L'e.wheelDelta ne fonctionne pas pour moi.
Cela a fonctionné:
JS: