> Week 6. 무한스크롤과 intersection observer
모바일 환경에서 많이 사용됨.
MDN: Intersection Observer API
그들이 감시하고자 하는 요소가 다른 요소(viewport)에 들어가거나 나갈 때
또는 요청한 부분만큼 두 요소의 교차부분이 변경될 때 마다 실행될 콜백 함수를 등록할 수 있게 한다.
const observer = new InterSectionObserver(callback, options);
const callback = entries => entries.forEach(entry => {
// entry 대상 여러개 지정 가능
entry.isIntersecting && console.log(화면 끝!, entry)
})
const options = {
root: // 기본: null(= viewport), 감시할 요소를 제한시킬 때 상위 부모를 넣기
rootMargin: // root가 가진 여백. 여유를 주는 것.
threshold: // 가시성 퍼센티지. 요소가 몇 만큼 보여졌을 때 탐지할 것이냐 - 🧐
}
// 감시할 요소: observer.observe(감시 대상)
// 앞의 감시 요소 풀어주기: observer.unobserve(감시 풀 대상)
활용: 이미지 지연 로딩 등
min-height
를 지정해주기.무한 스크롤이 실무에서 굉장히 많이 사용되고,
기업 구현 문제에서도 단골문제로 나오는 걸로 알고 있는데
구현하는게 까다롭지 않고 intersection observer로 간단히 만들 수 있어서
의외로 놀랐다(!)