데이터 종속적인 인터페이스가 데이터의 변화를 감시하는 구조
특정 DOM 객체가 우리가 보는 화면 영역(viewport)와 겹치는 교차 이벤트를 감시
Intersection Observer API는 타겟 엘리먼트가 조상 엘리먼트, 또는 최상위 문서의 뷰포트(브라우저에서는 보통 브라우저의 viewport)의 교차영역에서 발생하는 변화를 비동기로 관찰하는 방법을 제공합니다.
참고 : MDN: Intersection_Observer_API
// 기본구조는 콜백함수와 옵션
const io = new IntersectionObserver(callback, options);
타겟 엘리먼트가 교차되었을 때 실행할 함수
rootMargin
threshold
// 기본 예제
// options 설정
const options = {
root: document.querySelector('.container'),
// .container class를 가진 엘리먼트를 root로 설정. null일 경우 브라우저 viewport
rootMargin: '5px', // rootMargin을 '5px'로 설정
threshold: [0, 0.5, 1]
// 타겟 엘리먼트가 교차영역에 진입, 교차영역에 타켓 엘리먼트의 50%가 있을 때,
//교차 영역에 타켓 엘리먼트의 100%가 있을 때 observe가 반응
}
// IntersectionObserver 생성
const io = new IntersectionObserver((entries, observer) => {
// callback 함수
// IntersectionObserverEntry 객체 리스트와 observer 본인을 받음
entries.forEach(entry => {
// entry와 observer 출력
console.log('entry:', entry);
console.log('observer:', observer);
})
}, options)