Eventos de navegador: ¿Qué son?

Eventos de teclado, ratón, formularios, etc...


Generalmente, cuando ocurre un evento debido a una acción del usuario, se dispara un evento de navegador. Son eventos nativos específicos que realizan una cierta tarea y donde su objeto de evento tiene propiedades o métodos especiales para dicha tarea.

Tipos de eventos

Normalmente, el evento que se dispara es de tipo Event, sin embargo, existe una amplia lista de eventos más específicos. Existen muchos y muy variados.

Veamos una lista de algunos de los eventos de navegador disponibles (no están todos):

Tipo de eventoEvento relacionado con...
Animaciones
AnimationEventInformación general de animaciones CSS.
AnimationPlaybackEventEstado de reproducción de la animación CSS.
TransitionEventInformación de estado de la transición CSS.
Interfaz de usuario
KeyboardEventInteracciones con teclas de teclado como keydown, keyup o keypress.
MouseEventInteracciones con dispositivo apuntador (ratón) como click, dblclick, mousedown, mouseup.
PointerEventInteracciones con dispositivo apuntador como pointerdown, pointerup... Acepta los de mouse.
TouchEventInteracciones con dispositivos con superficie táctil como touchstart, touchend, etc...
WheelEventInteracciones con la rueda de ratón o elemento similar como wheel.
Carga de página
BeforeUnloadEventEl instante justo antes de cerrar una pestaña o ventana del navegador como unload.
Portapapeles
ClipboardEventModificación del portapapeles con eventos como cut, copy o paste.
Eventos de giroscopio
DeviceMotionEventCambios en la posición o aceleración del giroscopio con devicemotion.
DeviceOrientationEventCambios en la orientación del dispositivo con deviceorientation.
Eventos de Drag and Drop
DragEventAcciones Drag and Drop del usuario mediante drag, drop, dragstart, dragend...
Formularios
FocusEventInteracciones con el foco de un elemento con focus, blur, focusin y focusout.
InputEventInteracción al introducir texto en un elemento con input.
FormDataEventEnvío de datos de formulario mediante formdata.
SubmitEventEnvío de un formulario a través de un botón con submit.
Tipografías
FontFaceSetLoadEventCarga de tipografías mediante loading, loadingdone o loadingerror.
Gamepad API
GamepadAxisEventInteracción con la cruceta de un joystick o gamepad. Experimental.
GamepadButtonEventInteracción con los botones de un gamepad. Experimental.
GamepadEventInteracción al conectar un gamepad con gamepadconnected o gamepaddisconnected.
Eventos de URL
HashChangeEventModificación o cambio del anchor de una URL mediante hashchange.
NavigateEventInteracción que interfiere con el historial de navegación mediante navigate.
PopStateEventInteracción con una entrada del historial de navegación mediante popstate.
Eventos de Mensajería
MessageEventEnvío de mensaje a través de WebSocket, SSE, iframes, workers, WebRTC, etc...
CloseEventCierre de evento de WebSocket.
Pagos a través de navegador
PaymentMethodChangeEventCambio del método de pago a través de la API de pagos del navegador.
PaymentRequestUpdateEventSe ha modificado algún detalle del diálogo de pago del navegador.
PictureInPicture
PictureInPictureEventSistema de Picture-in-picture como enterpictureinpicture o resize.
Eventos de voz
SpeechRecognitionEventInteracción con el sistema de reconocimiento de voz mediante result o nomatch.
SpeechSynthesisErrorEventErrores en la interacción creando un mensaje con el sintetizador de voz.
SpeechSynthesisEventInteracción con el sintetizador de voz con pause, boundary, etc...
Eventos personalizados
CustomEventCreación de eventos personalizados que explicamos detalladamente en Ver Custom Events

Recuerda que esto es sólo una pequeña lista de todos los eventos de navegador que existen.

Ejemplo: PointerEvent

Vamos a realizar un ejemplo con el evento click. Nuestro código nos permitirá hacer click con el ratón en cualquier parte de la pantalla. Nos mostrará los siguientes datos:

  • El número de veces consecutivas que hemos hecho click: event.detail
  • Las coordenadas de X donde has hecho click en la pantalla: event.x
  • Las coordenadas de Y donde has hecho click en la pantalla: event.y
const span = document.body.querySelector("span");
document.body.addEventListener("click", (event) => {
  const { x, y, detail } = event;
  span.textContent = `Has hecho ${detail} CLICK en las coordenadas (${x}x${y})`;
});
body {
  margin: 0;
  width: 100vw;
  height: 100vh;
  background: lightgrey;
  user-select: none;
  font-size: 2rem;
}
<span>Haz click en una parte de la página</span>

En la función action realizamos una desestructuración para simplificar el código y modificamos el contenido de texto del elemento <span> cada vez que hacemos click.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev