Introducción:
En el anterior artículo vimos el evento keydown y ahora veremos el evento keyup y un ejemplo de uso con las teclas de flechas.

¿Qué es keyup?
Es un evento que se ejecuta cuando la tecla deja de estar abajo (o sea, cuando soltamos la tecla).
2 Formas de escribir el evento keyup
function Nombre_de_la_función(event){
if (event.keyCode == 'código_de_la_tecla'){
//acción a ejecutar
}
}
window.onkeyup = Nombre_de_la_función;
window.addEventListener("keyup", event => {
if (event.keyCode == 'código_de_la_tecla'){
//acción a ejecutar
}
});
Ejemplo usando el evento keyup
En este ejemplo vamos a crear un cuadrado y lo moveremos con las teclas de flecha izquierda, derecha, arriba y abajo.

Punto 1:
Para empezar vamos a crear un cuadradito.

Un cuadrado tiene los lados del mismo tamaño y en css el ancho es width y el alto es height. En el siguiente código veremos lo básico para crear y posicionar el cuadrado menos el border-radius (ese lo puse por gusto… 🙄).
#cuadrado{
background-color: #3bd980;
height: 100px;
width: 100px;
top: 0px;
left: 0px;
border-radius: 10px;
position: absolute;
}
Punto 2:
Ahora pasamos a la parte del movimiento y vamos a crear un sistema de referencia para intentar guiarnos.
Nota de vital importancia: Aquí veremos el movimiento del cuadrado en el sistema de coordenadas; pero en el documento html funciona distinto.

Partiendo de la imagen podemos decir que:
Para movernos hacia la derecha sumamos o incrementamos en x.

Para movernos hacia la izquierda restamos o decrementos en x.

Para movernos hacia arriba vamos sumando o incrementando en y (debido a que 0 es mayor que un número negativo, es correcto decir que incrementa).

Y para movernos hacia abajo decrementamos en y.

Punto 3:
Antes de empezar con el código en javascript debemos saber el código numérico de las flechas del teclado:
- Flecha arriba: 38
- Flecha abajo: 40
- Flecha izquierda: 37
- Flecha derecha: 39
Usamos la explicación anterior para crear el código del movimiento de nuestro cuadrado
Creamos 2 variables x y y que indican cuanto nos moveremos en top y left.
Usamos onkeyup para que detecte la tecla que presionamos y luego lo comparamos con la tecla que escogimos, si ambas son iguales ejecutará la acción de mover en la dirección que escogimos.
let x = 0;
let y = 0;
let cuadradito = document.getElementById('cuadrado');
/*
*Al llevar el eje de coordenadas al documento html hacemos una traducción
*debido a que funcionan distinto y esa diferencia es más evidente cuando trabajamos en el top.
*
*En el eje de coordenadas incremetamos para mover hacia arriba, en el top decrementamos
*para empujar hacias arriba.
*/
function movimiento(event){
if(event.keyCode == '39'){//derecha
x= x + 100;
cuadradito.style.left = x + 'px';
}
if(event.keyCode == '37'){//Izquierda
x= x - 100;
cuadradito.style.left = x +'px';
}
if(event.keyCode == '38'){//arriba
y = y + 100;
cuadradito.style.top = (-y) + 'px';
}
if(event.keyCode == '40'){//abajo
y = y - 100;
cuadradito.style.top = (-y) + 'px';
}
}
window.onkeyup = movimiento;
La lógia del eje de coordenadas puede aplicarse a otros lenguajes, lo que cambia es como representamos o traducimos eso en la parte visual o gráfica.
Punto 4:
Para finalizar en el documento html llamamos (enlazamos o insertamos) a los otros documentos con extensión .css y .js.
<!DOCTYPE html>
<html lang="en-ES">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="cuadrado"></div>
<script src="test.js"></script>
</body>
</html>
Extra: Clic aquí para ver el código funcionando y recuerden que para mover el cuadrado deben hacerlo desde el teclado de su computadora.
very well my friend