In diesem Artikel werden hauptsächlich relevante Informationen zum Deaktivieren von Mausradereignissen in JavaScript vorgestellt. Freunde in Not können darauf zurückgreifen.
Normalerweise passen wir die Kompatibilität niedrigerer IE-Versionen an, wenn es um kompatible Dinge geht, aber dieses Mal liegt es nicht daran, dass die niedrigere Version des Browsers inkompetent ist. Das liegt daran, dass Firefox zu weit gegangen ist und die Erfahrungen anderer Browser völlig außer Acht gelassen hat. Alle Browser außer Firefox können das MouseWheel-Ereignis verwenden, um die Reaktion des Mausrads zu verarbeiten. Allerdings unterstützt Firefox MouseWheel nicht und verwendet das unsinnige DOMMouseScroll, das mit anderen Browsern außer Firefox nicht kompatibel ist. Mit anderen Worten: Für die Verarbeitung von Mausradereignissen kann Firefox nur DOMMouseScroll verwenden. Nicht-Firefox kann nur MouseWheel verwenden. Die Prinzipien dieser beiden Ereignisse sind unterschiedlich und auch die von ihnen verarbeiteten Daten sind unterschiedlich.
- varfirefox=navigator.userAgent.indexOf('Firefox')!=-1;
- firefox?img.addEventListener('DOMMouseScroll',MouseWheel,false):
- (img.onmousewheel=MouseWheel);
- functionMouseWheel(e){
- e=e||window.event;
- if(e.stopPropagation)e.stopPropagation();
- elsee.cancelBubble=true;
- if(e.preventDefault)e.preventDefault();
- elsee.returnValue=false;
- }
Werfen wir einen Blick auf den vollständigen Code
- <!DOCTYPEhtml>
- <Stil>
- span{font:14px/20pxMicrosoft Yahei;}
- #Schalter{
- Breite:50px;Höhe:20px;
- border:1pxsolid#CCC;
- Hintergrund:#F9F9F9;
- Schriftart: 14px/20pxConsolas;
- text-align:center;
- Rand: 10 Pixel;
- }
- </style>
- <span>Verwenden Sie das Mausrad, um den Wert anzupassen</span><br/>
- <divid=counter>0</div>
- <Skript>
- //Beurteilen Sie den Browser
- varisIE=navigator.userAgent.match(/MSIE(/d)/i);
- isIE=isIE?isIE[1]:undefiniert;
- varisFF=/FireFox/i.test(navigator.userAgent);
- //Elemente abrufen
- varcounter=document.getElementById(counter);
- //Mausrad-Ereignis
- if(isIE<9)//Herkömmliche Browser verwenden das MouseWheel-Ereignis
- counter.attachEvent(onmousewheel,function(){
- //Berechnen Sie die Entfernung, um die das Mausrad scrollt
- //Ein Raster hat 3 Zeilen, jede Zeile hat 40 Pixel, also dividiere durch 120
- varv=event.wheelDelta/120;
- counter.innerHTML=counter.innerHTML*1+v;
- //Standardmethode des Browsers blockieren
- returnfalse;
- });
- elseif(!isFF)//Moderne Browser außer Firefox verwenden auch das MouseWheel-Ereignis
- counter.addEventListener(mousewheel,function(e){
- //Berechnen Sie die Entfernung, um die das Mausrad scrollt
- varv=e.wheelDelta/120;
- counter.innerHTML=counter.innerHTML*1+v;
- //Standardmethode des Browsers blockieren
- e.preventDefault();
- },FALSCH);
- else//Der seltsame Firefox verwendet das DOMMouseScroll-Ereignis
- counter.addEventListener(DOMMouseScroll,function(e){
- //Berechnen Sie die Entfernung, um die das Mausrad scrollt
- //Ein Raster besteht aus 3 Zeilen, aber bitte beachten Sie, dass der Unterschied zu Pixeln hier darin besteht, dass es sich um einen negativen Wert handelt
- varv=-e.detail/3;
- counter.innerHTML=counter.innerHTML*1+v;
- //Standardmethode des Browsers blockieren
- e.preventDefault();
- },FALSCH);
- </script>
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.