PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Что такое Intersection Observer?

DOM и браузер

Intersection Observer — это браузерный API, который асинхронно отслеживает пересечение элемента с областью просмотра (viewport) или контейнером, без обработчиков скролла.

Зачем нужен

Раньше «видимость» элемента отслеживали через scroll + getBoundingClientRect, что дорого (постоянные вычисления, reflow). Intersection Observer делает это эффективно и асинхронно.

Как использовать

const observer = new IntersectionObserver(
  (entries) => {
    entries.forEach((entry) => {
      if (entry.isIntersecting) {
        console.log('элемент виден');
      }
    });
  },
  { threshold: 0.5 }, // сработать при 50% видимости
);

observer.observe(document.querySelector('.target'));
  • threshold — доля видимости для срабатывания (0–1).
  • root — контейнер (по умолчанию viewport).
  • rootMargin — отступы для «раннего» срабатывания.

Применение

  • Ленивая загрузка изображений и контента.
  • Бесконечный скролл (подгрузка при приближении к концу).
  • Анимации при появлении в зоне видимости.
  • Подсчёт показов рекламы, аналитика.

Преимущества

  • Не блокирует основной поток, без дорогих обработчиков скролла.
  • Браузер оптимизирует вычисления.

Коротко для собеседования

Intersection Observer асинхронно отслеживает пересечение элемента с viewport/контейнером без обработчиков скролла. Настраивается threshold/root/rootMargin. Применяют для ленивой загрузки, бесконечного скролла, анимаций появления и аналитики. Эффективнее scroll + getBoundingClientRect.

Другие вопросы раздела