Capítulo 8: Eventos de Ratón y Teclado
Este capítulo cubre los tipos de eventos más comunes: los relacionados con el ratón (mouse) y el teclado. Aprenderás qué evento usar en cada situación.
8.1. Eventos de ratón principales
click
clickSe dispara cuando el usuario hace clic (presiona y suelta).
const boton = document.querySelector('button');
boton.addEventListener('click', (evento) => {
console.log("Click detectado");
});dblclick
dblclickSe dispara en un doble clic (rápido).
elemento.addEventListener('dblclick', (evento) => {
console.log("Doble clic");
});mousedown y mouseup
mousedown y mouseupmousedown: Se dispara cuando el usuario presiona el botón del ratónmouseup: Se dispara cuando el usuario suelta el botón
const area = document.querySelector('#area');
area.addEventListener('mousedown', () => {
console.log("Ratón presionado");
});
area.addEventListener('mouseup', () => {
console.log("Ratón soltado");
});mousemove
mousemoveSe dispara constantemente mientras el usuario mueve el ratón sobre el elemento. ¡Usa con cuidado porque se dispara muchas veces!
8.2. Movimiento: mouseenter vs mouseover
mouseenter vs mouseovermouseenter
mouseenterSe dispara cuando el ratón entra en el área del elemento.
mouseover
mouseoverSimilar a mouseenter, pero sí hace bubbling (veremos más adelante).
mouseleave
mouseleaveSe dispara cuando el ratón sale del elemento.
mouseout
mouseoutSimilar a mouseleave, pero sí hace bubbling.
Recomendación: Usa mouseenter y mouseleave para la mayoría de casos por su comportamiento más predecible.
8.3. Eventos de teclado
keydown
keydownSe dispara cuando el usuario presiona una tecla (se repite si la mantiene presionada).
keyup
keyupSe dispara cuando el usuario suelta una tecla.
keypress
keypressObsoleto. No lo uses. Usa keydown o keyup en su lugar.
8.4. Propiedades de teclado: key vs code
key vs codeCuando se dispara un evento de teclado, el objeto Event contiene dos propiedades relacionadas:
event.key: El carácter que el usuario intentó escribir ("a", "A", "Enter", "ArrowUp")event.code: La posición física de la tecla en el teclado ("KeyA", "ShiftRight")
Teclas especiales
8.5. Modificadores: ctrlKey, shiftKey, altKey
ctrlKey, shiftKey, altKeyPuedes detectar si se presionaron teclas modificadoras junto con otra tecla.
8.6. Patrón práctico: Detectar Enter en un input
Un caso muy común es ejecutar código cuando el usuario presiona Enter en un campo de texto.
8.7. Propiedades adicionales de eventos de ratón
El objeto Event de ratón contiene información sobre la posición:
8.8. Patrón práctico: Detectar botón del ratón
Resumen del Capítulo
Los eventos de ratón y teclado son los más comunes en aplicaciones web. Aprende a usar los eventos correctos para cada situación: click para clics simples, keydown/keyup para teclado, y mouseenter/mouseleave para hover effects. Recuerda diferenciar entre key (carácter) y code (posición física) en eventos de teclado.
💡 Conceptos Clave:
click: Clic simple
dblclick: Doble clic
mousedown/mouseup: Presionar y soltar ratón
mousemove: Movimiento constantemente
mouseenter/mouseleave: Entrar y salir del área
keydown/keyup: Presionar y soltar tecla
event.key: Carácter del teclado
event.code: Posición física de la tecla
Modificadores: ctrlKey, shiftKey, altKey, metaKey
event.clientX/clientY: Coordenadas del ratón
🤔 Preguntas de Reflexión:
¿Cuál es la diferencia entre
mouseenterymouseover?¿Cuándo usarías
keydownvskeyup?¿Cuál es la diferencia entre
event.keyyevent.code?¿Cómo detectarías el atajo de teclado Ctrl+Z?
¿Cómo obtendrías la posición exacta del ratón en un evento
mousemove?Crea un input que se enfoque al presionar la tecla '/'
Última actualización
¿Te fue útil?