wheel rueda raton evento event javascript internet-explorer mouseevent multi-touch microsoft-edge

javascript - rueda - Evento mousewheel y dommousescroll en IE y Edge



scroll mouse css (2)

Tengo este código:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> window.addEventListener(''DOMMouseScroll'', mouseWheelEvent); window.addEventListener(''mousewheel'', mouseWheelEvent); function mouseWheelEvent() { alert(1); } </script> </body> </html>

Funciona en Chrome y Firefox. Sin embargo, no funciona con la pantalla táctil de mi laptop dell xps 13 9434 en IE & edge. Pero funciona con (algunos) touchpads de otros portátiles. ¿Qué hacer? jQuery no es un problema.

"¿Qué no funciona?" => No hay alerta en desplazamiento cuando se usan 2 dedos como los que usa para desplazarse por los navegadores.


Algunas versiones anteriores de IE no son compatibles con addEventListener, sino que son compatibles con attachEvent.

Pruebe un crossBrowser addEventListener:

if ( window.attachEvent ) { window.attachEvent(''on''+eventType, yourHandler); // in your case "scroll" } else { window.addEventListener ... }

Preste atención a la altura de la página: no funcionará si no hay compensación. Si no hay desplazamiento en su página, entonces use esto:

document.attachEvent(''onmousewheel'', mouseWheelEvent); // the event is attached to document


Editar

Después de algunas investigaciones, parece que el problema es en realidad de Microsoft.

Hay un problema abierto al respecto en el rastreador de problemas EdgeHTML desde hace casi un año.

Básicamente, dice que los eventos de rueda no funcionan en Edge (y versiones anteriores de IE) cuando se usan Precision Touchpads .

Por cierto, no borro el resto de la respuesta, ya que sigue siendo relevante. Deberías usar la wheel lugar de todos modos.

Deberías escuchar la wheel :

window.addEventListener(''wheel'', mouseWheelEvent);

Ha reemplazado tanto mousewheel como DOMMouseScroll que ahora están en desuso y es compatible con todos los navegadores .

Ejemplo de navegador cruzado:

window.addEventListener(''wheel'', mouseWheelEvent); function mouseWheelEvent() { console.log("Fired"); }

<h1> Hodor! </h1> <h1> Hodor! </h1> <h1> Hodor! </h1> <h1> Hodor! </h1> <h1> Hodor! </h1> <h1> Hodor! </h1> <h1> Hodor! </h1>

Y demostración de JSFiddle