타겟 엘리멘트가 화면(viewport)에 보여지고 있는지 관찰하는 API
현재 대부분의 모던 브라우저에서 지원
const io = new IntersectionObserver(callback, options); // 관찰자 초기화
const target = document.querySelector('.target')
io.observe(target); // 관찰할 대상(요소) 등록
callback
entries
, observer
두 개의 매개변수를 받음
entries
: 더 드러나거나 가려져서 지정한 역치를 넘어가게 된 요소를 나타내는 IntersectionObserverEntry 객체의 배열observer
: 콜백을 호출한 IntersectionObserveroptions
root
, rootMargin
, threshold
가 있음
root
: 대상 요소의 조상 Element (기본값은 null 로, Document가 root로 설정됨)rootMargin
: root 영역의 크기를 키우거나 줄이고자 할 때 사용threshold
: 대상이 화면에 표시되는 비율(역치)로, 이 값을 지정하여 대상이 어느정도 노출될 때 보이는 것으로 판단observe(*targetElement*)
: 타겟 엘리먼트에 대한 관찰을 등록unobserve(*targetElement*)
: 타겟 엘리먼트에 대한 관찰을 정지disconnect()
: 다수의 엘리먼트를 관찰하고 있을 때, 이에 대한 모든 관찰 정지takeRecords()
: 관찰 중인 엘리먼트의 IntersectionObserverEntry 객체를 배열로 반환