usar teclado tactil puedo mover laptop funciona flecha cómo configurar como activar javascript jquery scroll arrow-keys

javascript - teclado - mouse tactil no funciona



¿Cómo evito el desplazamiento con las teclas de flecha pero NO el mouse? (3)

Ya que estoy usando jQuery, cualquier solución a través de eso también funcionaría. Idealmente, me gustaría saber ambos, sin embargo.

Ya tengo las teclas de flecha enlazadas a otra función en mi página (usando jQuery), pero hacer que la página se desplace además de eso, me causa problemas.

Pude haberlo sabido al mismo tiempo, pero ya no lo recuerdo.


¡Agregar el manejador de pulsaciones de teclado a nivel de documento hace el truco!

var ar=new Array(33,34,35,36,37,38,39,40); $(document).keydown(function(e) { var key = e.which; //console.log(key); //if(key==35 || key == 36 || key == 37 || key == 39) if($.inArray(key,ar) > -1) { e.preventDefault(); return false; } return true; });


En algunas circunstancias, ej. cuando en realidad no tienes un elemento en el que enfocas, solo un área en la que tienes que hacer clic, es posible que no tengas demasiado control sobre el manejador y prevenir el evento a nivel global puede ser un poco escamoso en el mejor de los casos (como lo encontré) por el camino difícil).

La solución más simple en esos casos es vincular el clic incluso del botón de control y centrarse en un elemento de entrada vacío que coloca -9000px a la izquierda.

A continuación, puede bloquear el evento de forma fiable mediante la tecla y tampoco tener que preocuparse por bloquear el comportamiento predeterminado u otras escuchas globales, ya que el comportamiento predeterminado en el elemento de entrada moverá el cursor hacia la izquierda y hacia la derecha.


Si agrega un controlador de pulsaciones de teclas a nivel de documento, evitará el desplazamiento normal en la página en cualquier momento, no solo cuando su elemento tenga el foco, esto podría ser un efecto no deseado.