Me encontré con el siguiente artículo , allí encontré un ejemplo con un evento de desplazamiento de bloqueo:
document.body.addEventListener('pointermove', event => { if (event.cancelable) { event.preventDefault(); // block the native scroll /* * do what you want the application to do here */ } }, {passive: true}); pero, no funciona, por cierto, veo falta de lógica al usar preventDefault en passive: true . ¿Qué está pasando, alguien podría explicarme?
No, ese es el punto de passive . De la documentación de MDN para addEventListener :
passiveUn valor booleano que, si es
true, indica que la función especificada por el oyente nunca llamará apreventDefault(). Si un oyente pasivo llama apreventDefault(), el agente de usuario no hará nada más que generar una advertencia en la consola. Consulte Mejorar el rendimiento del desplazamiento con oyentes pasivos para obtener más información.
Y de manera similar, de la especificación :
Cuando se establece en
true, laoptionspassivede options indica que la devolución de llamada no cancelará el evento al invocarpreventDefault(). Esto se utiliza para habilitar las optimizaciones de rendimiento descritas en § 2.8 Observación de detectores de eventos .
El artículo parece estar equivocado o referirse a situaciones que aún no están estandarizadas (ya que mencionan algo sobre el desplazamiento horizontal mientras comienza el desplazamiento vertical).