Como desabilitar as arrow keys do teclado

  • Autor Autor Fromend
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
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

Inserir CODE, HTML ou 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:
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Inserir CODE, HTML ou 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:
 
Inserir CODE, HTML ou 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? 😕
 
Voltar
Topo