--- title: IntersectionObserver slug: Web/API/IntersectionObserver tags: - API - Experimental - Interface - Intersection Observer - Intersection Observer API - Reference - observers translation_of: Web/API/IntersectionObserver ---
Интерфейс IntersectionObserver
в составе Intersection Observer API предоставляет возможность асинхронного наблюдения за изменением пересечения целевого элемента с вышестоящим элементом или с верхоуровневым {{Glossary('viewport')}} документа. Вышестоящий элемент или viewport считается корнем.
Когда IntersectionObserver
создан, он настроен на отслеживание заданных соотношений видимости в корне. Конфигурация не может быть изменена после создания IntersectionObserver
, поэтому такой объект-наблюдатель полезен только для наблюдения за определёнными изменениями в степени видимости; однако вы можете следить за несколькими целевыми элементами с одним и тем же наблюдателем.
IntersectionObserver
, который будет запускать специальную колбэк-функцию, когда обнаружит пересечение одного или нескольких пороговых значений видимостью целевого элемента.null
, будет использован viewport документа.px
) или в процентах (%
). Значение по умолчанию "0px 0px 0px 0px".IntersectionObserver
от наблюдения любой цели.IntersectionObserver
целевой элемент для наблюдения.IntersectionObserver
прекратить наблюдение за конкретным целевым элементом.var intersectionObserver = new IntersectionObserver(function(entries) { // Если intersectionRatio равен 0, цель вне зоны видимости // и нам не нужно ничего делать if (entries[0].intersectionRatio <= 0) return; loadItems(10); console.log('Loaded new items'); }); // начать наблюдение intersectionObserver.observe(document.querySelector('.scrollerFooter'));
Specification | Status | Comment |
---|---|---|
{{SpecName("IntersectionObserver", "#intersection-observer-interface", "IntersectionObserver")}} | {{Spec2('IntersectionObserver')}} |
{{Compat("api.IntersectionObserver")}}