Criar páginas web interativas com JavaScript exige a compreensão e o controle dos eventos que ocorrem durante a navegação do usuário. Os eventos permitem que desenvolvedores capturem e respondam a ações como cliques, digitação, movimentação do mouse ou envio de formulários. Neste artigo vamos apresentar exemplos práticos para adicionar, manipular e controlar eventos, transformando elementos estáticos em componentes dinâmicos.
O que são eventos na web?
Eventos na web são interações que ocorrem em uma página ou aplicação, representando ações realizadas pelos usuários ou pelo sistema. Eles englobam desde simples cliques em botões até a digitação de caracteres e a movimentação do mouse. Quando um evento é acionado, ele pode desencadear respostas específicas do navegador, permitindo interações dinâmicas com elementos da página.
Alguns exemplos de eventos comuns:
- Clique (click): quando o usuário clica em um elemento;
- Movimentação do mouse (mousemove): quando o mouse se move sobre um elemento;
- Teclado (keydown, keyup): quando uma tecla é pressionada ou liberada;
- Carregamento de página (load): quando um recurso ou a página inteira é carregado;
- Formulários (submit): quando um formulário é enviado.
Estes eventos são a base para criar comportamentos dinâmicos, e a manipulação adequada deles possibilita melhorar a interatividade da página e proporcionar uma experiência do usuário mais rica.
Manipulação de eventos com JavaScript
A manipulação de eventos em JavaScript é feita por meio de “ouvintes de eventos” (event listeners), que “ouvem” quando um evento específico acontece e, em seguida, executam uma função chamada manipulador de eventos (event handler).
Adicionando um event listener
O método “addEventListener” é uma maneira moderna e flexível de adicionar manipuladores de eventos a elementos HTML.
Parâmetros nos Eventos
Alguns eventos fornecem informações adicionais através de um objeto de evento, acessível como parâmetro da função associada. Este objeto contém detalhes como o elemento acionador e a posição do cursor.
Aqui, a função associada recebe um parâmetro chamado “event”, que contém informações sobre o evento. Utilizamos “event.target.tagName” para exibir no console o nome do elemento clicado (neste caso, será “INPUT”).
Isso pode ser útil para validar entradas de formulário em tempo real, fornecendo feedback instantâneo ao usuário, rastrear cliques, analisar o comportamento do usuário ou criar elementos interativos baseados na posição do clique.
Removendo um Event Listener
Quando precisamos evitar que um comportamento previamente associado a um evento continue ocorrendo, podemos utilizar o método “removeEventListener”. Essa abordagem é útil em situações onde a funcionalidade precisa ser desativada temporária ou permanentemente, como pausar interações em um botão após um clique ou desativar um evento de movimento do mouse para melhorar o desempenho. Para usar esse método, é necessário que a função associada ao evento tenha um nome definido.
A função “mostrarMensagem” é adicionada ao evento click do botão “Ativar” usando “addEventListener”. No botão “Desativar”, usamos “removeEventListener” para remover o evento associado ao botão “Ativar”. Um alerta é exibido para informar que o evento foi desativado.
Eventos comuns
Existem diversos eventos disponíveis em JavaScript. Vamos explorar os mais utilizados, organizados por categoria.
Eventos do Mouse
Evento |
Descrição |
click |
Disparado ao clicar em um elemento. |
dblclick |
Disparado ao dar um duplo clique. |
mouseenter |
Disparado ao mover o cursor para um elemento. |
mouseout |
Disparado ao mover o cursor para fora de um elemento. |
mousemove |
Disparado ao mover o cursor dentro de um elemento. |
Agora vamos exemplificar utilizando o evento “’mousemove”:
Passe o mouse aqui
No exemplo acima, o evento “mousemove” é usado para detectar o movimento do cursor dentro da área. O objeto “event” fornece as coordenadas do cursor, acessadas através de “event.clientX” e “event.clientY”, que são exibidas no console.
Eventos de input
Esses eventos monitoram interações em campos de entrada de dados. Eles podem ser utilizados para destacar visualmente os campos ativos em um formulário, ajudando o usuário a identificar claramente onde está digitando.
Evento | Descrição |
input | Disparado sempre que o valor de um campo muda. |
focus | Disparado quando um campo recebe o foco. |
blur | Disparado quando um campo perde o foco. |
Exemplo com evento “focus” e “blur”:
O evento focus altera a cor de fundo do campo para amarelo quando ele recebe o foco, ou seja, quando clicamos no input. Já o evento blur restaura a cor original quando o campo perde o foco.
Eventos do teclado
Esses eventos lidam com interações relacionadas ao teclado. Eles são úteis para implementar funcionalidades como atalhos de teclado, captura de comandos personalizados, preenchimento dinâmico de campos ou interações baseadas em teclas específicas
Evento |
Descrição |
keydown |
Disparado ao pressionar uma tecla. |
keyup |
Disparado ao soltar uma tecla. |
Abaixo temos um exemplo de tratamento do evento keydown
Neste exemplo, o evento “keydown” é usado para capturar a tecla pressionada pelo usuário. O texto exibido no elemento com id definido como “Resultado” é atualizado com a tecla correspondente, acessada através de “event.key”.
Conclusão
Existem muitos outros eventos além dos mostrados, e para cada necessidade específica, você deve buscar o evento que melhor se adequa ao seu caso. A escolha do evento certo depende do comportamento que você deseja capturar, como interações do usuário, mudanças no conteúdo ou animações. Com a prática, você aprenderá a combinar eventos e a criar comportamentos dinâmicos para melhorar a experiência do usuário. Consulte a documentação para explorar mais opções e aprimorar suas habilidades em JavaScript.