Estoy tratando de configurar un proyecto para usar con dispositivos móviles y de escritorio, pero el evento de la rueda no funciona en dispositivos móviles, por lo que necesito usar el desplazamiento.
Sé cómo obtener el deltaY del evento Rueda:
window.addEventListener("wheel", event => console.info(event.deltaY));¿Cómo obtengo el deltaY del evento Scroll?
Debe memorizar la última posición de desplazamiento en una variable, y cuando se activa el evento de desplazamiento, puede calcular la diferencia.
Aquí hay un ejemplo modificado para su caso de uso de los documentos de MDN sobre el evento de desplazamiento :
let lastKnownScrollPosition = 0; let deltaY = 0; document.addEventListener('scroll', function(e) { let ticking = false; if (!ticking) { // event throtteling window.requestAnimationFrame(function() { deltaY = window.scrollY - lastKnownScrollPosition; lastKnownScrollPosition = window.scrollY; console.log('deltaY', deltaY); ticking = false; }); ticking = true; } }); body { background: lightgrey; height: 8000px; } <body> </body>El código anterior utiliza la limitación para reducir la cantidad de eventos activados. Ver también: Diferencia entre limitar y eliminar el rebote de una función