Introdução
Neste laboratório, os participantes aprenderão a lidar com eventos de teclado em uma página web, criando uma interface HTML interativa que responde às teclas pressionadas pelo usuário. O laboratório foca na implementação de manipuladores de eventos como onkeydown e onkeyup para mudar dinamicamente a cor do texto e demonstrar a interação do teclado em tempo real. Os participantes começarão configurando um documento HTML estruturado com um elemento de entrada e estilização, e então adicionarão progressivamente funcionalidade JavaScript para capturar e responder a eventos de teclado.
O laboratório oferece uma abordagem prática para entender o gerenciamento de eventos de teclado, cobrindo técnicas-chave como detectar pressionamentos de teclas, modificar elementos da página e implementar ouvintes de eventos (event listeners). Ao seguir o processo passo a passo, os alunos obterão experiência prática na criação de interfaces web responsivas que podem detectar e reagir às interações do teclado do usuário, aprimorando sua compreensão do tratamento de eventos do lado do cliente (client-side event handling) no desenvolvimento web.
Configurar a Estrutura HTML com o Elemento de Entrada
Nesta etapa, criaremos a estrutura HTML básica para o nosso laboratório de tratamento de eventos de teclado. Configuraremos um arquivo HTML com um elemento de entrada que servirá como o alvo para nossos eventos de teclado.
Abra o WebIDE e crie um novo arquivo chamado index.html no diretório ~/project. Começaremos criando um documento HTML5 simples com uma estrutura básica e um 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>
Vamos detalhar os componentes-chave desta estrutura HTML:
- Criamos um layout simples e centralizado com uma div container.
- Um elemento
<input>com o IDkeyboardInputé adicionado como o principal ponto de interação. - Uma
<div>com o IDoutputé incluída para exibir informações relacionadas aos eventos. - CSS básico é adicionado para melhorar a aparência visual e o layout.
Esta configuração inicial fornece uma interface limpa e amigável para a nossa demonstração de eventos de teclado. Nas etapas subsequentes, adicionaremos JavaScript para lidar com eventos de teclado neste elemento de entrada.
Implementar o Evento onkeydown para Mudar a Cor do Texto
Nesta etapa, adicionaremos JavaScript para implementar o manipulador de eventos onkeydown para o nosso elemento de entrada. Este evento mudará a cor do texto quando uma tecla for pressionada.
Abra o arquivo index.html no WebIDE e adicione uma tag <script> logo antes da tag </body> de fechamento para incluir nosso código JavaScript:
<script>
// Get references to the input element and output div
const inputElement = document.getElementById("keyboardInput");
const outputElement = document.getElementById("output");
// Add onkeydown event listener to change text color
inputElement.onkeydown = function (event) {
// Change the input text color to red when a key is pressed
this.style.color = "red";
// Display information about the key pressed
outputElement.textContent = `Key pressed: ${event.key} (KeyCode: ${event.keyCode})`;
};
</script>
Vamos detalhar as partes-chave deste código:
document.getElementById()é usado para obter referências aos elementos de entrada e saída.inputElement.onkeydownadiciona um ouvinte de evento (event listener) para o evento keydown.- Dentro do manipulador de eventos:
this.style.color = 'red'muda a cor do texto para vermelho quando uma tecla é pressionada.outputElement.textContentexibe informações sobre a tecla pressionada.
Exemplo de saída quando você digita no campo de entrada:
- O texto ficará vermelho enquanto você digita
- A div de saída mostrará a última tecla pressionada e seu keyCode
Isso demonstra como o evento onkeydown funciona:
- Ele é acionado toda vez que uma tecla é pressionada
- Fornece acesso a detalhes do evento, como a tecla pressionada
- Permite a manipulação dinâmica dos estilos dos elementos
Implementar o Evento onkeyup para Restaurar a Cor Original do Texto
Nesta etapa, adicionaremos o manipulador de eventos onkeyup para restaurar a cor original do texto de entrada ao seu estado original quando a tecla for liberada. Modificaremos o script existente no arquivo index.html para incluir essa funcionalidade.
Atualize a seção <script> no seu arquivo index.html com o seguinte código:
<script>
// Get references to the input element and output div
const inputElement = document.getElementById("keyboardInput");
const outputElement = document.getElementById("output");
// Add onkeydown event listener to change text color
inputElement.onkeydown = function (event) {
// Change the input text color to red when a key is pressed
this.style.color = "red";
// Display information about the key pressed
outputElement.textContent = `Key pressed: ${event.key} (KeyCode: ${event.keyCode})`;
};
// Add onkeyup event listener to restore original text color
inputElement.onkeyup = function (event) {
// Restore the input text color to black when the key is released
this.style.color = "black";
// Update the output with key release information
outputElement.textContent = `Key released: ${event.key} (KeyCode: ${event.keyCode})`;
};
</script>
Vamos detalhar o novo manipulador de eventos onkeyup:
inputElement.onkeyupadiciona um ouvinte de evento (event listener) para o evento keyup.- Dentro do manipulador de eventos:
this.style.color = 'black'restaura a cor do texto para preto quando uma tecla é liberada.outputElement.textContentexibe informações sobre a tecla liberada.
Exemplo de interação:
- Quando você pressiona uma tecla, o texto fica vermelho
- Quando você solta a tecla, o texto volta para preto
- A div de saída mostra detalhes sobre os eventos de pressionar e soltar a tecla
Isso demonstra a diferença entre os eventos onkeydown e onkeyup:
onkeydowné acionado quando uma tecla é pressionadaonkeyupé acionado quando uma tecla é liberada- Ambos os eventos fornecem acesso a informações da tecla
Adicionar o Manipulador de Evento Window Onload
Nesta etapa, introduziremos o manipulador de eventos window.onload para demonstrar como executar código JavaScript após o carregamento completo da página web. Adicionaremos uma função de inicialização que fornece uma mensagem inicial e configura alguma estilização padrão.
Atualize a seção <script> no seu arquivo index.html com o seguinte código:
<script>
// Window onload event handler
window.onload = function () {
// Get references to the input element and output div
const inputElement = document.getElementById("keyboardInput");
const outputElement = document.getElementById("output");
// Set initial message when page loads
outputElement.textContent = "Page loaded! Start typing in the input field.";
outputElement.style.color = "green";
// Add onkeydown event listener to change text color
inputElement.onkeydown = function (event) {
// Change the input text color to red when a key is pressed
this.style.color = "red";
// Display information about the key pressed
outputElement.textContent = `Key pressed: ${event.key} (KeyCode: ${event.keyCode})`;
outputElement.style.color = "blue";
};
// Add onkeyup event listener to restore original text color
inputElement.onkeyup = function (event) {
// Restore the input text color to black when the key is released
this.style.color = "black";
// Update the output with key release information
outputElement.textContent = `Key released: ${event.key} (KeyCode: ${event.keyCode})`;
outputElement.style.color = "green";
};
};
</script>
Mudanças-chave nesta etapa:
- Envolvemos os manipuladores de eventos existentes dentro da função
window.onload - Adicionamos uma mensagem inicial quando a página carrega
- Introduzimos mudanças de cor no elemento de saída para um melhor feedback visual
O evento window.onload garante que:
- Todos os elementos da página sejam totalmente carregados antes de executar JavaScript
- Evita erros que podem ocorrer se os scripts forem executados antes que o DOM esteja pronto
- Fornece uma maneira confiável de inicializar a funcionalidade da página
Exemplo de interação:
- Quando a página carrega, você verá uma mensagem verde "Page loaded!"
- Digitar mudará as cores do texto e as mensagens de saída
- Pressionar uma tecla mostra mensagens azuis
- Soltar uma tecla mostra mensagens verdes
Testar e Verificar as Interações de Eventos de Teclado
Nesta etapa final, testaremos e verificaremos as interações de eventos de teclado que implementamos ao longo do laboratório. Exploraremos diferentes cenários para demonstrar como nossos manipuladores de eventos funcionam e entender seu comportamento.
Abra o arquivo index.html no WebIDE e certifique-se de ter o script completo das etapas anteriores. Agora, vamos testar várias interações de teclado:
Interação de Carregamento da Página
- Quando a página carrega, você deve ver uma mensagem verde: "Page loaded! Start typing in the input field." (Página carregada! Comece a digitar no campo de entrada.)
Interações de Pressionar Tecla
- Digite qualquer tecla no campo de entrada
- Observe as seguintes mudanças:
- A cor do texto muda para vermelho
- A mensagem de saída mostra a tecla pressionada e seu keyCode
- A cor da mensagem de saída muda para azul
Interações de Soltar Tecla
- Solte a tecla que você pressionou
- Observe as seguintes mudanças:
- A cor do texto volta para preto
- A mensagem de saída mostra a tecla liberada e seu keyCode
- A cor da mensagem de saída volta para verde
Exemplos de cenários de interação:
Scenario 1: Typing "Hello"
- First 'H' pressed: Text turns red, blue output message
- 'H' released: Text turns black, green output message
- Continue for each letter...
Scenario 2: Special keys
- Try arrow keys, shift, ctrl, etc.
- Observe how different keys trigger events
Pontos-chave de aprendizado:
onkeydown: É acionado quando uma tecla é pressionadaonkeyup: É acionado quando uma tecla é liberadawindow.onload: Garante que a página seja totalmente carregada antes de executar os scripts
Para completar o laboratório:
- Abra o arquivo HTML em um navegador web
- Interaja com o campo de entrada
- Observe as mudanças de cor e mensagem
- Verifique se todos os manipuladores de eventos funcionam como esperado
Resumo
Neste laboratório, os participantes aprendem a lidar com eventos de teclado em uma página web, criando uma interface HTML interativa com ouvintes de eventos (event listeners) JavaScript. O laboratório começa com a configuração de um documento HTML estruturado, apresentando um elemento de entrada e uma div de saída, estilizados com CSS responsivo para fornecer uma interface de usuário limpa e centralizada. Os participantes explorarão técnicas-chave de tratamento de eventos, como onkeydown e onkeyup, que permitem a manipulação dinâmica da cor do texto e o rastreamento de eventos em tempo real.
Os objetivos de aprendizado se concentram na compreensão dos mecanismos de eventos do navegador, na implementação de ouvintes de eventos e na criação de interações web responsivas. Ao trabalhar nas etapas do laboratório, os desenvolvedores obterão experiência prática na captura de entradas de teclado, na modificação dinâmica de elementos da página e na implementação de manipuladores de eventos em nível de janela (window-level event handlers), que são habilidades fundamentais para criar aplicações web interativas e envolventes.



