Cet article présente principalement les informations pertinentes sur la désactivation des événements de la molette de la souris dans JavaScript. Les amis dans le besoin peuvent s'y référer.
Nous ajustons généralement la compatibilité des versions inférieures d’IE lorsqu’il s’agit d’éléments compatibles, mais cette fois, ce n’est pas parce que la version inférieure du navigateur est incompétente. C'est parce que Firefox est allé trop loin et ignore complètement l'expérience des autres navigateurs. Tous les navigateurs, à l'exception de Firefox, peuvent utiliser l'événement MouseWheel pour gérer la réponse de la molette de la souris. Cependant, Firefox ne prend pas en charge MouseWheel et utilise le absurde DOMMouseScroll, qui n'est pas compatible avec d'autres navigateurs à l'exception de Firefox. En d’autres termes, pour gérer les événements de la molette de la souris, Firefox ne peut utiliser que DOMMouseScroll. Les non-Firefox ne peuvent utiliser que MouseWheel. Les principes de ces deux événements sont différents, et les données qu’ils traitent sont également différentes.
- varfirefox=navigator.userAgent.indexOf('Firefox')!=-1;
- firefox?img.addEventListener('DOMMouseScroll',MouseWheel,false) :
- (img.onmousewheel=MouseWheel);
- fonctionMouseWheel(e){
- e=e||window.event;
- if(e.stopPropagation)e.stopPropagation();
- elsee.cancelBubble=true;
- if(e.preventDefault)e.preventDefault();
- elsee.returnValue=false;
- }
Jetons un coup d'œil au code complet
- <!DOCTYPEhtml>
- <style>
- span{font:14px/20pxMicrosoft Yahei;}
- #comptoir{
- largeur : 50 px ; hauteur : 20 px ;
- bordure : 1pxsolid#CCC ;
- arrière-plan :#F9F9F9 ;
- police : 14px/20pxConsolas ;
- texte-align:centre;
- marge : 10 px ;
- }
- </style>
- <span>Utilisez la molette de la souris pour ajuster la valeur</span><br/>
- <divid=compteur>0</div>
- <script>
- // Juger le navigateur
- varisIE=navigator.userAgent.match(/MSIE(/d)/i);
- isIE=isIE?isIE[1]:indéfini;
- varisFF=/FireFox/i.test(navigator.userAgent);
- //Obtenir des éléments
- varcounter=document.getElementById(counter);
- //Événement de la molette de la souris
- if(isIE<9)//Les navigateurs traditionnels utilisent l'événement MouseWheel
- counter.attachEvent(onmousewheel,function(){
- //Calculer la distance parcourue par la molette de la souris
- //Une grille comporte 3 lignes, chaque ligne comporte 40 pixels, donc divisez par 120
- varv=event.wheelDelta/120;
- compteur.innerHTML=compteur.innerHTML*1+v;
- // Bloquer la méthode par défaut du navigateur
- returnfalse ;
- });
- elseif(!isFF)//Les navigateurs modernes, à l'exception de Firefox, utilisent également l'événement MouseWheel
- counter.addEventListener(mousewheel,function(e){
- //Calculer la distance parcourue par la molette de la souris
- varv=e.wheelDelta/120;
- compteur.innerHTML=compteur.innerHTML*1+v;
- // Bloquer la méthode par défaut du navigateur
- e.preventDefault();
- },FAUX);
- else//L'étrange Firefox utilise l'événement DOMMouseScroll
- counter.addEventListener(DOMMouseScroll,function(e){
- //Calculer la distance parcourue par la molette de la souris
- //Une grille est composée de 3 lignes, mais veuillez noter que la différence ici avec les pixels est qu'il s'agit d'une valeur négative
- varv=-e.detail/3;
- compteur.innerHTML=compteur.innerHTML*1+v;
- // Bloquer la méthode par défaut du navigateur
- e.preventDefault();
- },FAUX);
- </script>
Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.