Intersection Observer API

ay_park·2022년 11월 6일
0

Intersection Observer API

  • 비동기적으로 어떤 변화를 감지하는 API

  • 바로 어떤 요소가 부모 컨테이너 안에서나 뷰포트 즉 윈도우 전체의 창 안에서 요소의 intersection을 감지 -> 요소가 정해진 부모 컨테이너 안에 교차가 되는 지를 확인.

  • getBoundingClientRect()을 사용하는 것은 좋지않다.

  • 만약 윈도우 창 안에 많은 페이지의 내용이 들어있다면 사용자에게 보여지는 부분은 일부분이지만 전부 돔요소에 저장되어 있다면 브라우저 메모리를 많이 잡아먹는다. 사용자에게 보여지는 부분은 그대로 두고 보여지지 않는 부분은 잠시 삭제했다가 사용자에게 보여질 때 다시 돔 요소에 보여지는 작업도 가능. --> 성능향상에 좋음

  • 원하는 요소가 특정한 영역에 들어왔을 때 콜백함수를 호출해주는 관찰자

const target = document.querySelectorAll('#listItem');

const callback = (entries, observer) => {
	};

const observer = new IntersectionObserver(callback, option);
entries.forEach(entry => observer.observe(entry){
    // target element:
    //   entry.boundingClientRect 
    //   entry.intersectionRatio 얼마나 들어와있는지 예를 들면, 90%만 들어와 있다면 0.9
    //   entry.intersectionRect 들어온 포지션과 크기
    //   entry.isIntersecting 요소가 안으로 들어오는 상태라면 true, 윈도우에 있다가 밖으로 나가는 상태라면 false
    //   entry.rootBounds 현재 계산하고 있는 부모의 크기
    //   entry.target
    //   entry.time
 });
// Each entry describes an intersection change for one observed

0개의 댓글