Foros del Web » Programando para Internet » Javascript »

Mover en diagonal un div con el teclado

Estas en el tema de Mover en diagonal un div con el teclado en el foro de Javascript en Foros del Web. Estimados, estoy necesitando mover un div en diagonal, hasta el momento, solo lo puedo mover en direcciones clasicas (arriba, abajo, derecha, izquierda)... @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 25/09/2013, 17:25
 
Fecha de Ingreso: abril-2011
Ubicación: Mendoza
Mensajes: 42
Antigüedad: 13 años, 7 meses
Puntos: 0
Exclamación Mover en diagonal un div con el teclado

Estimados, estoy necesitando mover un div en diagonal, hasta el momento, solo lo puedo mover en direcciones clasicas (arriba, abajo, derecha, izquierda)...

Código Javascript:
Ver original
  1. this.keyboard = function(){
  2.         $(document).keydown(function(e){
  3.             if(e.keyCode == '65'){
  4.                 self.move('left');
  5.             }
  6.             if(e.keyCode == '68'){
  7.                 self.move('right');
  8.             }
  9.             if(e.keyCode == '87'){
  10.                 self.move('top');
  11.             }
  12.             if(e.keyCode == '83'){
  13.                 self.move('bottom');
  14.             }
  15.         });
  16.     };
  17.  
  18. this.move = function(dir){
  19.  
  20.         var x = self.div.offset().left;
  21.         var y = self.div.offset().top;
  22.  
  23.         switch (dir){
  24.             case 'left':
  25.                 x = x - self.pixMove;
  26.                 break;
  27.             case 'right':
  28.                 x = x + self.pixMove;
  29.                 break;
  30.             case 'top':
  31.                 y = y - self.pixMove;
  32.                 break;
  33.             case 'bottom':
  34.                 y = y + self.pixMove;
  35.                 break;
  36.             default:
  37.                 break;
  38.         }
  39.  
  40.  
  41.         self.div.css('left',x+'px');
  42.         self.div.css('top',y+'px');
  43.     };

Quizas una de las formas es tomar si hay dos teclas presionadas en el teclado, como la W y la D juntas. .por ejemplo, pero no lo logre..

Alguna idea????
__________________
Claudio A. Marrero - Proyect Manager
  #2 (permalink)  
Antiguo 26/09/2013, 04:45
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Mover en diagonal un div con el teclado

Código Javascript:
Ver original
  1. this.keys={ left:false, top:false,  rigth:false, bottom:false };
  2.  
  3. this.keyboard = function(){
  4.         $(document).keydown(function(e){
  5.             if(e.keyCode == '65'){
  6.                 self.keys.left=true;
  7.             }
  8.             if(e.keyCode == '68'){
  9.                 self.keys.right=true;
  10.             }
  11.             if(e.keyCode == '87'){
  12.                  self.keys.top=true;
  13.             }
  14.             if(e.keyCode == '83'){
  15.                  self.keys.bottom=true;
  16.             }
  17.             self.move();
  18.         });
  19.         $(document).keyup(function(e){
  20.             if(e.keyCode == '65'){
  21.                 self.keys.left=false;
  22.             }
  23.             if(e.keyCode == '68'){
  24.                 self.keys.right=false;
  25.             }
  26.             if(e.keyCode == '87'){
  27.                  self.keys.top=false;
  28.             }
  29.             if(e.keyCode == '83'){
  30.                  self.keys.bottom=false;
  31.             }
  32.         });
  33.     };
  34.  
  35. this.move = function(){
  36.  
  37.         var x = self.div.offset().left;
  38.         var y = self.div.offset().top;
  39.  
  40.         if (this.keys.left) x-=self.pixMove;
  41.         if (this.keys.right) x+=self.pixMove;
  42.         if (this.keys.top) y-=self.pixMove;
  43.         if (this.keys.bottom) y-=self.pixMove;
  44.  
  45.         self.div.css('left',x+'px');
  46.         self.div.css('top',y+'px');
  47.     };

Etiquetas: diagonal, teclado
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 20:50.