Foros del Web » Programando para Internet » Javascript »

bloquear barras de desplazamiento

Estas en el tema de bloquear barras de desplazamiento en el foro de Javascript en Foros del Web. Estoy adaptando a mi web un juego en JavaScript. El juego se maneja con las flechas de teclado, y he ahí el problema: en pantallas ...
  #1 (permalink)  
Antiguo 01/03/2009, 19:04
 
Fecha de Ingreso: marzo-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
bloquear barras de desplazamiento

Estoy adaptando a mi web un juego en JavaScript. El juego se maneja con las flechas de teclado, y he ahí el problema: en pantallas pequeñas, como las de un portátil, al pulsar las flechas de teclado se desplaza el scroll vertical arriba y abajo, haciendo imposible jugar.

¿Hay alguna manera de evitar que se desplace el scroll vertical al pulsar las flechas de teclado? El juego es de tamaño relativamente grande, con lo cual no me es posible suprimir las barras de desplazamiento.

No soy profesional, pero tengo verdadero interés en solucionar ese enojoso problema. ¿No habrá un script para bloquear las barras de desplazamiento (especialmente la vertical), de manera que al pulsar las flechas de teclado no se desplacen?

Infinitas gracias de antemano.
  #2 (permalink)  
Antiguo 01/03/2009, 19:22
Avatar de jeybi  
Fecha de Ingreso: julio-2008
Ubicación: Mexico
Mensajes: 130
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: bloquear barras de desplazamiento

Pues he echo esto rapidamente, funciona en firefox, no se si te vaya en los demas navegadores:

Código javascript:
Ver original
  1. window.onkeypress = function(elEvento) {
  2.   var evento = elEvento || window.event; //IE
  3.   var codigo = evento.keyCode;    //Obtenemos el codigo de la telca pulsada
  4.   if(codigo > 36 & codigo < 41) //Si se pulso una de las 4 Flechas...
  5.       return false;  //Le decimos al navegador que no haga lo que haria normalmente (mover las scrollbars)
  6.    
  7. }
  #3 (permalink)  
Antiguo 01/03/2009, 19:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: bloquear barras de desplazamiento

Voy a probar... como funcione me desmayo.
Trillones de gracias
  #4 (permalink)  
Antiguo 01/03/2009, 19:39
 
Fecha de Ingreso: marzo-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: bloquear barras de desplazamiento

jeybi, muchas gracias. En Firefox funciona de maravilla, casi se me caen las lágrimas de gusto... Pero en IE nada de nada, no funciona ni a tiros. :)

¿Alguna otra sugerencia?
  #5 (permalink)  
Antiguo 01/03/2009, 20:01
Avatar de jeybi  
Fecha de Ingreso: julio-2008
Ubicación: Mexico
Mensajes: 130
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: bloquear barras de desplazamiento

Cambia window por document, pequeño error mio :P
Saludos
  #6 (permalink)  
Antiguo 01/03/2009, 20:17
 
Fecha de Ingreso: marzo-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: bloquear barras de desplazamiento

Nada, en el puñetero IE no quiere funcionar

Total, paciencia y barajar... Pero algo es algo. Gracias.
  #7 (permalink)  
Antiguo 01/03/2009, 20:38
Avatar de jeybi  
Fecha de Ingreso: julio-2008
Ubicación: Mexico
Mensajes: 130
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: bloquear barras de desplazamiento

Aqui te dejo la funcion x-browser:

Código javascript:
Ver original
  1. document.onkeydown = function(elEvento) {
  2.   var evento = elEvento || window.event;
  3.   var codigo = evento.keyCode;
  4.   if(codigo > 36 && codigo < 41){ //Flechas
  5.     return false;
  6.   }
  7. }

El error estaba en el evento, onkeypress.keycode en ie, captura el caracter (abcdef etc) de la tecla pulsada, y en los demas (estandar) captura el codigo (lo que se necesita), entonces cambiando el evento a onkeydown, ie y todos los demas navegadores reconocen keycode como el codigo.

PD: Faltaba un & en la condicion, añadeselo.
  #8 (permalink)  
Antiguo 01/03/2009, 20:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: bloquear barras de desplazamiento

Peor solución, porque ahora lo que pasa es que no funcionan las flechas de teclado, ni en IE ni en Firefox.
  #9 (permalink)  
Antiguo 01/03/2009, 21:12
Avatar de jeybi  
Fecha de Ingreso: julio-2008
Ubicación: Mexico
Mensajes: 130
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: bloquear barras de desplazamiento

Intenta combiar este script con el de tu juego, es decir que despues de que termine sus acciones regrese false. De otra forma no podras, onekypress acutua despues de onkeydown y por eso las acciones de tu juego lograban ejecutarse (supongo yo) pero lamentablemente ie no puede saber que tecla especial (flechas, tabulador, etc) pulsaste usando onkeypress. Usar onkeyup ya es muy tarde, el navegador ya movio los scrolls y no te deja nada que bloquear.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:41.