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
:
passive
Un 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
, laoptions
passive
de 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).