Obtuve un elemento desplegable personalizado y habilité el desplazamiento al presionar una tecla, usando tabindex="-1" en los elementos combinados con el enfoque de los elementos:
document.getElementsByClassName(`elem-${hasFocus.value}`)[0].focus(); El problema ocurre cuando la tecla de desplazamiento toca el borde superior/inferior. Luego, al presionar las teclas se desplaza la ventana. El comportamiento estándar se detiene usando evt.preventDefault() . Pero esto también detiene el comportamiento de desplazamiento "suave" usando tabindex (sigue desplazándose pero solo salta a los elementos de la lista). ¿Hay alguna forma diferente de evitar el comportamiento estándar de desplazamiento de la ventana?
No obtuve un ejemplo reproducible sino un repositorio de git: componente desplegable
El método importante es arrowNavigation .
No lo entendí bien, pero si lo que quiere es detener la propagación del evento a la ventana cuando usa evt.preventDefault() en su controlador, puede probar evt.stopPropagation()