Introducción
En este laboratorio, los participantes aprenderán a manejar los eventos del teclado en una página web creando una interfaz HTML interactiva que responda a las pulsaciones de teclado del usuario. El laboratorio se centra en implementar manejadores de eventos como onkeydown y onkeyup para cambiar dinámicamente el color del texto y demostrar la interacción de teclado en tiempo real. Los participantes comenzarán configurando un documento HTML estructurado con un elemento de entrada y un estilo, y luego agregarán progresivamente funcionalidad de JavaScript para capturar y responder a los eventos del teclado.
El laboratorio ofrece un enfoque práctico para entender la gestión de eventos del teclado, cubriendo técnicas clave como la detección de pulsaciones de teclado, la modificación de elementos de página e implementación de oyentes de eventos. Siguiendo el proceso paso a paso, los aprendices adquirirán experiencia práctica en la creación de interfaces web reactivas que pueden detectar y reaccionar a las interacciones de teclado del usuario, mejorando su comprensión del manejo de eventos del lado del cliente en el desarrollo web.
Configura la estructura HTML con un elemento de entrada
En este paso, crearemos la estructura HTML básica para nuestro laboratorio de manejo de eventos del teclado. Estableceremos un archivo HTML con un elemento de entrada que servirá como objetivo para nuestros eventos del teclado.
Abra el WebIDE y cree un nuevo archivo llamado index.html en el directorio ~/proyecto. Comenzaremos creando un documento HTML5 simple con una estructura básica y un elemento de entrada.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Keyboard Events Lab</title>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f0f0f0;
}
.container {
text-align: center;
background-color: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
input {
padding: 10px;
font-size: 16px;
width: 300px;
margin-bottom: 10px;
}
#output {
margin-top: 10px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="container">
<h1>Keyboard Events Lab</h1>
<input type="text" id="keyboardInput" placeholder="Type something here" />
<div id="output"></div>
</div>
</body>
</html>
Analicemos los componentes clave de esta estructura HTML:
- Hemos creado un diseño simple y centrado con un div contenedor.
- Se agrega un elemento
<input>con el IDkeyboardInputcomo el principal punto de interacción. - Se incluye un
<div>con IDoutputpara mostrar información relacionada con el evento. - Se agrega CSS básico para mejorar la apariencia visual y el diseño.
Esta configuración inicial proporciona una interfaz limpia y amigable para nuestro demostración de eventos del teclado. En los pasos siguientes, agregaremos JavaScript para manejar los eventos del teclado en este elemento de entrada.
Implementa el evento onkeydown para cambiar el color del texto
En este paso, agregaremos JavaScript para implementar el manejador de eventos onkeydown para nuestro elemento de entrada. Este evento cambiará el color del texto cuando se presione una tecla.
Abra el archivo index.html en el WebIDE y agregue una etiqueta <script> justo antes de la etiqueta de cierre </body> para incluir nuestro código JavaScript:
<script>
// Obtiene referencias al elemento de entrada y al div de salida
const inputElement = document.getElementById("keyboardInput");
const outputElement = document.getElementById("output");
// Agrega un oyente de eventos onkeydown para cambiar el color del texto
inputElement.onkeydown = function (event) {
// Cambia el color del texto de entrada a rojo cuando se presiona una tecla
this.style.color = "red";
// Muestra información sobre la tecla presionada
outputElement.textContent = `Tecla presionada: ${event.key} (Código de tecla: ${event.keyCode})`;
};
</script>
Analicemos las partes clave de este código:
document.getElementById()se utiliza para obtener referencias a los elementos de entrada y salida.inputElement.onkeydownagrega un oyente de eventos para el evento keydown.- Dentro del manejador de eventos:
this.style.color ='red'cambia el color del texto a rojo cuando se presiona una tecla.outputElement.textContentmuestra información sobre la tecla presionada.
Salida de ejemplo cuando se escribe en el campo de entrada:
- El texto se tornará rojo a medida que se escribe
- El div de salida mostrará la última tecla presionada y su código de tecla
Esto demuestra cómo funciona el evento onkeydown:
- Se activa cada vez que se presiona una tecla
- Proporciona acceso a detalles del evento como la tecla presionada
- Permite la manipulación dinámica de los estilos de los elementos
Implementa el evento onkeyup para restaurar el color original del texto
En este paso, agregaremos el manejador de eventos onkeyup para restaurar el color del texto de entrada a su estado original cuando se suelta la tecla. Modificaremos el script existente en el archivo index.html para incluir esta funcionalidad.
Actualice la sección <script> en su archivo index.html con el siguiente código:
<script>
// Obtiene referencias al elemento de entrada y al div de salida
const inputElement = document.getElementById("keyboardInput");
const outputElement = document.getElementById("output");
// Agrega un oyente de eventos onkeydown para cambiar el color del texto
inputElement.onkeydown = function (event) {
// Cambia el color del texto de entrada a rojo cuando se presiona una tecla
this.style.color = "red";
// Muestra información sobre la tecla presionada
outputElement.textContent = `Tecla presionada: ${event.key} (Código de tecla: ${event.keyCode})`;
};
// Agrega un oyente de eventos onkeyup para restaurar el color original del texto
inputElement.onkeyup = function (event) {
// Restaura el color del texto de entrada a negro cuando se suelta la tecla
this.style.color = "black";
// Actualiza la salida con información de liberación de tecla
outputElement.textContent = `Tecla liberada: ${event.key} (Código de tecla: ${event.keyCode})`;
};
</script>
Analicemos el nuevo manejador de eventos onkeyup:
inputElement.onkeyupagrega un oyente de eventos para el evento keyup.- Dentro del manejador de eventos:
this.style.color = 'black'restaura el color del texto a negro cuando se suelta la tecla.outputElement.textContentmuestra información sobre la tecla liberada.
Interacción de ejemplo:
- Cuando se presiona una tecla, el texto se vuelve rojo
- Cuando se suelta la tecla, el texto regresa a negro
- El div de salida muestra detalles sobre los eventos de presión y liberación de tecla
Esto demuestra la diferencia entre los eventos onkeydown y onkeyup:
onkeydownse activa cuando se presiona una teclaonkeyupse activa cuando se suelta una tecla- Ambos eventos proporcionan acceso a la información de la tecla
Agrega un manejador de eventos window.onload
En este paso, introduciremos el manejador de eventos window.onload para demostrar cómo ejecutar código JavaScript después de que toda la página web haya terminado de cargarse. Agregaremos una función de inicialización que proporcione un mensaje inicial y configure algunos estilos predeterminados.
Actualice la sección <script> en su archivo index.html con el siguiente código:
<script>
// Manejador de eventos onload de la ventana
window.onload = function () {
// Obtiene referencias al elemento de entrada y al div de salida
const inputElement = document.getElementById("keyboardInput");
const outputElement = document.getElementById("output");
// Establece el mensaje inicial cuando se carga la página
outputElement.textContent =
"Página cargada! Comience a escribir en el campo de entrada.";
outputElement.style.color = "green";
// Agrega un oyente de eventos onkeydown para cambiar el color del texto
inputElement.onkeydown = function (event) {
// Cambia el color del texto de entrada a rojo cuando se presiona una tecla
this.style.color = "red";
// Muestra información sobre la tecla presionada
outputElement.textContent = `Tecla presionada: ${event.key} (Código de tecla: ${event.keyCode})`;
outputElement.style.color = "blue";
};
// Agrega un oyente de eventos onkeyup para restaurar el color original del texto
inputElement.onkeyup = function (event) {
// Restaura el color del texto de entrada a negro cuando se suelta la tecla
this.style.color = "black";
// Actualiza la salida con información de liberación de tecla
outputElement.textContent = `Tecla liberada: ${event.key} (Código de tecla: ${event.keyCode})`;
outputElement.style.color = "green";
};
};
</script>
Cambios clave en este paso:
- Envolvió los manejadores de eventos existentes dentro de la función
window.onload - Agregó un mensaje inicial cuando se carga la página
- Introdujo cambios de color en el elemento de salida para una mejor retroalimentación visual
El evento window.onload garantiza que:
- Todos los elementos de la página estén completamente cargados antes de ejecutar JavaScript
- Previene errores que pueden ocurrir si los scripts se ejecutan antes de que el DOM esté listo
- Proporciona una forma confiable de inicializar la funcionalidad de la página
Interacción de ejemplo:
- Cuando se carga la página, verá un mensaje verde "Página cargada!"
- Escribir cambiará los colores del texto y los mensajes de salida
- La presión de tecla muestra mensajes azules
- La liberación de tecla muestra mensajes verdes
Probar y verificar las interacciones de eventos del teclado
En este último paso, probaremos y verificaremos las interacciones de eventos del teclado que hemos implementado en todo el laboratorio. Exploraremos diferentes escenarios para demostrar cómo funcionan nuestros manejadores de eventos y entender su comportamiento.
Abra el archivo index.html en el WebIDE y asegúrese de tener el script completo de los pasos anteriores. Ahora, probemos varias interacciones del teclado:
Interacción al cargar la página
- Cuando se carga la página, debería ver un mensaje verde: "Página cargada! Comience a escribir en el campo de entrada."
Interacciones al presionar una tecla
- Escriba cualquier tecla en el campo de entrada
- Observe los siguientes cambios:
- El color del texto cambia a rojo
- El mensaje de salida muestra la tecla presionada y su código de tecla
- El color del mensaje de salida cambia a azul
Interacciones al soltar una tecla
- Suelte la tecla que presionó
- Observe los siguientes cambios:
- El color del texto regresa a negro
- El mensaje de salida muestra la tecla liberada y su código de tecla
- El color del mensaje de salida regresa a verde
Escenarios de interacción de ejemplo:
Escenario 1: Escribir "Hola"
- Primera 'H' presionada: El texto se vuelve rojo, mensaje de salida azul
- 'H' liberada: El texto se vuelve negro, mensaje de salida verde
- Continúe para cada letra...
Escenario 2: Teclas especiales
- Pruebe flechas, shift, ctrl, etc.
- Observe cómo diferentes teclas activan eventos
Puntos claves de aprendizaje:
onkeydown: Se activa cuando se presiona una teclaonkeyup: Se activa cuando se suelta una teclawindow.onload: Asegura que la página esté completamente cargada antes de ejecutar los scripts
Para completar el laboratorio:
- Abra el archivo HTML en un navegador web
- Interactúe con el campo de entrada
- Observe los cambios de color y mensaje
- Verifique que todos los manejadores de eventos funcionen como se esperaba
Resumen
En este laboratorio, los participantes aprenden a manejar eventos del teclado en una página web creando una interfaz HTML interactiva con oyentes de eventos de JavaScript. El laboratorio comienza configurando un documento HTML estructurado que incluye un elemento de entrada y un div de salida, con un estilo CSS responsivo para proporcionar una interfaz de usuario limpia y centrada. Los participantes explorarán técnicas de manejo de eventos clave como onkeydown y onkeyup, que permiten la manipulación dinámica del color del texto y el seguimiento en tiempo real de los eventos.
Los objetivos de aprendizaje se centran en la comprensión de los mecanismos de eventos del navegador, la implementación de oyentes de eventos y la creación de interacciones web responsivas. Al trabajar a través de los pasos del laboratorio, los desarrolladores adquirirán experiencia práctica en la captura de entradas del teclado, la modificación dinámica de los elementos de la página y la implementación de manejadores de eventos a nivel de ventana, que son habilidades fundamentales para crear aplicaciones web interactivas y atractivas.



