Desarrollo en curso, en breve se publicarán el resto de temas.

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

Se dispara cuando el usuario hace clic (presiona y suelta).

const boton = document.querySelector('button');
boton.addEventListener('click', (evento) => {
    console.log("Click detectado");
});

dblclick

Se dispara en un doble clic (rápido).

elemento.addEventListener('dblclick', (evento) => {
    console.log("Doble clic");
});

mousedown y mouseup

  • mousedown: Se dispara cuando el usuario presiona el botón del ratón

  • mouseup: 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

Se 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

Se dispara cuando el ratón entra en el área del elemento.

mouseover

Similar a mouseenter, pero sí hace bubbling (veremos más adelante).

mouseleave

Se dispara cuando el ratón sale del elemento.

mouseout

Similar a mouseleave, pero sí hace bubbling.


8.3. Eventos de teclado

keydown

Se dispara cuando el usuario presiona una tecla (se repite si la mantiene presionada).

keyup

Se dispara cuando el usuario suelta una tecla.

keypress


8.4. Propiedades de teclado: key vs code

Cuando 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

Puedes 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:

  1. ¿Cuál es la diferencia entre mouseenter y mouseover?

  2. ¿Cuándo usarías keydown vs keyup?

  3. ¿Cuál es la diferencia entre event.key y event.code?

  4. ¿Cómo detectarías el atajo de teclado Ctrl+Z?

  5. ¿Cómo obtendrías la posición exacta del ratón en un evento mousemove?

  6. Crea un input que se enfoque al presionar la tecla '/'


Última actualización

¿Te fue útil?