Cómo deshabilitar los arrow keys del teclado

  • Autor Autor Fromend
  • Fecha de inicio Fecha de inicio
F

Fromend

Delta
Diseñador
Hola betas, tengo un sitio web de juegos montado en wordpress, cada entrada es un juego flash, la manera de inserción de éstos son mediante iframes, los juegos obviamente son objetos flash.

Bien, el problema está en que cuando los visitantes van a jugar un juego, valga la redundancia xD, muchos de éstos se hacen empleando los arrow keys del teclado o flechas direccionales (arriba, abajo, izquierda, derecha), pero cuando se usan estas teclas no tienen efecto alguno sobre el juego, sino sobre el scroll del browser, bajando y subiendo la página.

Es muy incómodo la verdad, por eso estuve tratando de crear un script para deshabilitar estas teclas pero no consigo que tengan efecto, he buscado en internet y he encontrado preguntas similares en stackoverflow con soluciones parciales, la que más me convenció fue esta: javascript - Disable arrow key scrolling in users browser - Stack Overflow

Insertar CODE, HTML o PHP:
var keys = {};
window.addEventListener("keydown",
    function(e){
        keys[e.keyCode] = true;
        switch(e.keyCode){
            case 37: case 39: case 38:  case 40: // Arrow keys
            case 32: e.preventDefault(); break; // Space
            default: break; // do not block other keys
        }
    },
false);
window.addEventListener('keyup',
    function(e){
        keys[e.keyCode] = false;
    },
false);

El script anterior funciona bien, pero en Google Chrome no surte efecto, ¿alguien lo podría fixear o decirme qué está mal?

Muchas gracias de antemano :encouragement:
 
Insertar CODE, HTML o PHP:
$('body').on('keydown', function(e){
if(e.which == 37 || e.which == 38 || e.which == 39 || e.which == 40) {
return false;
}
});

Eso debería funcionar, claro teniendo JQuery :encouragement:
 
Insertar CODE, HTML o PHP:
$('body').on('keydown', function(e){
if(e.which == 37 || e.which == 38 || e.which == 39 || e.which == 40) {
return false;
}
});

Eso debería funcionar, claro teniendo JQuery :encouragement:

Hola, gracias por tu respuesta, con ese script se anulan esas teclas y en consiguiente ni siquiera funcionan para el juego, te dejo la URL de un juego para que lo intentes, actualmente he insertado tu script.

Volcano Ride ? Juegos Fromend

Saludos 🙂
 
Hola, gracias por tu respuesta, con ese script se anulan esas teclas y en consiguiente ni siquiera funcionan para el juego, te dejo la URL de un juego para que lo intentes, actualmente he insertado tu script.

Volcano Ride ? Juegos Fromend

Saludos 🙂

Entonces cambia return false por preventDefault :drunk:
 
Revisa la URL anterior, hice ese cambio que dijiste y nada :/ prueba el juego tú mismo, no funcionan los arrow keys xD

- - - Actualizado - - -

¿Nadie puede ayudarme? 😕
 
Atrás
Arriba