0Pricing
HTML Academy · Lección

API IntersectionObserver y umbrales

Cree observadores y configure umbrales de visibilidad

API IntersectionObserver y umbrales es una lección gratuita de HTML Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de HTML Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de HTML Academy incluye 4 lecciones en total.

Qué hace IntersectionObserver

IntersectionObserver ejecuta callbacks cuando un elemento entra o sale de la ventana gráfica (o de otro contenedor con desplazamiento). Es la alternativa moderna y eficiente a los listeners de desplazamiento: el navegador hace los cálculos y su código solo se ejecuta cuando realmente cambia la visibilidad.

Construcción

new IntersectionObserver(callback, options) crea un observador. El callback recibe un array de entradas cuando cambian las intersecciones; las opciones controlan qué contenedor se observa y en qué umbrales.

const observer = new IntersectionObserver((entries) => {
  for (const entry of entries) {
    if (entry.isIntersecting) {
      console.log("Visible:", entry.target);
    }
  }
});
observer.observe(document.querySelector(".hero"));

IntersectionObserverEntry

Cada entrada tiene target (el elemento observado), isIntersecting (booleano), intersectionRatio (de 0 a 1), boundingClientRect, intersectionRect y time. Utilice isIntersecting para comprobaciones binarias de visibilidad e intersectionRatio para la lógica basada en el porcentaje visible.

La opción threshold

{ threshold: 0.5 } ejecuta el callback cada vez que la proporción de intersección cruza el 50 %. Utilice un array [0, 0.25, 0.5, 0.75, 1] para ejecutarlo en cada cuarto; resulta útil para crear indicadores de progreso o analíticas que informen del «% visible».

La opción root

De forma predeterminada, el observador mide la intersección con la ventana gráfica. Establezca root: someScrollableDiv para medirla con respecto a un contenedor de desplazamiento interno; por ejemplo, una lista virtualizada dentro de un div de altura fija.

La opción rootMargin

rootMargin: "200px" amplía 200 píxeles por cada lado del área de observación. Utilícelo para ejecutar el callback antes (empiece a cargar imágenes 200 px antes de que entren en la ventana gráfica) o después (ejecútelo solo cuando hayan salido completamente de la ventana gráfica).

new IntersectionObserver(callback, {
  rootMargin: "0px 0px 200px 0px",
  threshold: 0
});

observe y unobserve

observer.observe(element) comienza a observar un elemento; observer.unobserve(element) deja de hacerlo. Deje siempre de observarlo cuando ya no necesite el callback (por ejemplo, después de que la carga diferida se active una vez) para liberar memoria.

disconnect

observer.disconnect() deja de observar todos los elementos observados. Llámelo cuando se desmonte el componente o ya no necesite el observador; así evitará fugas causadas por observadores que sobrevivan a su caso de uso.

Entrega asíncrona

Los callbacks se entregan de forma asíncrona y agrupada: muchos cambios de intersección durante un desplazamiento rápido producen un callback con todas las entradas, no uno por elemento. Esto supone una gran mejora de rendimiento frente a los listeners de desplazamiento, que se ejecutan en cada evento de desplazamiento.

El callback inicial se ejecuta inmediatamente

Cuando observa un elemento nuevo, el callback se ejecuta una vez casi de inmediato con el estado actual. Esto resulta útil para gestionar elementos que ya son visibles cuando comienza la observación, sin necesidad de una ruta de inicialización especial.

Casos de uso habituales

Carga diferida de imágenes, activación de animaciones al desplazarse hasta un elemento, desplazamiento infinito (observe un sentinel cerca del final de la lista), seguimiento de los artículos que el usuario realmente ha leído y alternancia de un encabezado fijo según la visibilidad del hero.

Comprobación de conocimientos

¿Cuál es la diferencia entre threshold: 0 y threshold: 1 en un IntersectionObserver?

Resumen

IntersectionObserver ejecuta callbacks cuando cambia la visibilidad de un elemento, con agrupación y rendimiento optimizados de forma integrada; utilícelo en lugar de listeners de desplazamiento para la lógica de visibilidad. Configúrelo con threshold (de 0 a 1 o un array), root (un contenedor de desplazamiento personalizado) y rootMargin (para ampliar o reducir el área observada). Use observe/unobserve para elementos concretos y disconnect para limpiar todo.

Preguntas frecuentes

¿La lección «API IntersectionObserver y umbrales» es gratis?

Sí — el texto completo de «API IntersectionObserver y umbrales» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de HTML Academy, actualiza a CoddyKit PRO. El curso de HTML Academy incluye 4 lecciones en total.

¿Qué aprenderé en «API IntersectionObserver y umbrales»?

Cree observadores y configure umbrales de visibilidad Practicas HTML Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar HTML Academy?

No se requiere experiencia previa. HTML Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «API IntersectionObserver y umbrales»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de HTML Academy?

Sí. Cada lección de HTML Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. API IntersectionObserver y umbrales
  2. Carga diferida con IntersectionObserver
  3. Implementación del desplazamiento infinito
  4. Configuración de animaciones vinculadas al desplazamiento
← Volver a HTML Academy