Este artículo presenta principalmente información relevante sobre cómo deshabilitar los eventos de la rueda del mouse en JavaScript. Los amigos que lo necesiten pueden consultarlo.
Generalmente ajustamos la compatibilidad de las versiones inferiores de IE cuando se trata de cosas compatibles, pero esta vez no es porque la versión inferior del navegador sea incompetente. Es porque Firefox ha ido demasiado lejos y ignora por completo la experiencia de otros navegadores. Todos los navegadores excepto Firefox pueden usar el evento MouseWheel para manejar la respuesta de la rueda del mouse. Sin embargo, Firefox no es compatible con MouseWheel y utiliza el absurdo DOMMouseScroll, que no es compatible con otros navegadores excepto Firefox. En otras palabras, para manejar eventos de la rueda del mouse, Firefox solo puede usar DOMMouseScroll. Los que no son de Firefox solo pueden usar MouseWheel. Los principios de estos dos eventos son diferentes y los datos que procesan también son diferentes.
- varfirefox=navigator.userAgent.indexOf('Firefox')!=-1;
- firefox?img.addEventListener('DOMMouseScroll',MouseWheel,false):
- (img.onmousewheel=Rueda del ratón);
- funciónMouseWheel(e){
- e=e||ventana.evento;
- if(e.stopPropagation)e.stopPropagation();
- else.cancelBubble=true;
- if(e.preventDefault)e.preventDefault();
- elsee.returnValue=false;
- }
Echemos un vistazo al código completo.
- <!DOCTYPEhtml>
- <estilo>
- abarca {font:14px/20pxMicrosoft Yahei;}
- #encimera{
- ancho: 50 px; alto: 20 px;
- borde:1pxsolid#CCC;
- fondo:#F9F9F9;
- fuente:14px/20pxConsolas;
- alineación de texto:centro;
- margen: 10px;
- }
- </estilo>
- <span>Utilice la rueda del ratón para ajustar el valor</span><br/>
- <divid=contador>0</div>
- <guión>
- //Juzga el navegador
- varisIE=navigator.userAgent.match(/MSIE(/d)/i);
- esIE=esIE?esIE[1]:indefinido;
- varisFF=/FireFox/i.test(navigator.userAgent);
- //Obtener elementos
- varcounter=document.getElementById(contador);
- //evento de la rueda del mouse
- if(isIE<9)//Los navegadores tradicionales usan el evento MouseWheel
- contador.attachEvent(en la rueda del mouse,función(){
- //Calcula la distancia que recorre la rueda del ratón
- //Una cuadrícula tiene 3 líneas, cada línea tiene 40 píxeles, así que divídela entre 120
- varv=event.wheelDelta/120;
- contador.innerHTML=contador.innerHTML*1+v;
- //Bloquear el método predeterminado del navegador
- retornofalso;
- });
- elseif(!isFF)//Los navegadores modernos, excepto Firefox, también utilizan el evento MouseWheel
- contador.addEventListener(rueda del mouse,función(e){
- //Calcula la distancia que recorre la rueda del ratón
- varv=e.wheelDelta/120;
- contador.innerHTML=contador.innerHTML*1+v;
- //Bloquear el método predeterminado del navegador
- e.preventDefault();
- },FALSO);
- else//El extraño Firefox usa el evento DOMMouseScroll
- contador.addEventListener(DOMMouseScroll,función(e){
- //Calcula la distancia que recorre la rueda del ratón
- //Una cuadrícula tiene 3 líneas, pero tenga en cuenta que la diferencia aquí con los píxeles es que es un valor negativo
- varv=-e.detail/3;
- contador.innerHTML=contador.innerHTML*1+v;
- //Bloquear el método predeterminado del navegador
- e.preventDefault();
- },FALSO);
- </script>
Lo anterior es el contenido completo de este artículo, espero que les guste a todos.