TIL

kchamsae·2022년 4월 14일
0

TIL

목록 보기
4/5
post-thumbnail

Today

07:00 기상

이벤트에 등록하는 콜백함수는 최대한 간단하고 성능이 무겁지 않은 성능과 연관이 없는 것들만 사용해야 한다.
페이지위에서 레이아웃이 다시 발생하는것은 성능에 좋지 않다.

intersection observer API = 비동기적으로 어떤 변화를 감지하는 웹 API
우리가 원하는 요소가 특정한 영역에 들어왔을 때 알려 주는 우리의 콜백함수를 호출해주는 관찰자.

<script>
	// 클래스 이름이 box인 요소를 모두 가져옴
	const boxes = document.querySelectorAll('.box');
    
    
    const options = {
    	root: document.querySelector('.container'), // viewport
        // 사용자에게 현재 보여지지는 않지만 근접해 있는 경우 내가 이미지를 먼저 
        // 로딩해 놓겠다 or 필요한 컨텐츠를 준비해 놓겠다 할 때 유용하게 사용할 수 있다.
        rootMargin: '0px',
        threshhold: 1, // 0~1 (100%) // 좀더 알아볼것.
    }
    
    const callback = (entries, observer) => {
    	entries.forEach(entry => {
        	if(entry.isIntersecting) {
            	entry.target.classList.add('active');
            } else {
            	entry.target.classList.remove('active');
            }
        });
    };
    
    const observer = new IntersectionObserver(callback, options)
    
    // observer는 관찰하는 특정한 요소들이 화면에 들어오거나 나갈 때 우리가 등록한 
    콜백함수를 호출해준다.
    boxes.forEach(box => observer.observe(box));
</script>
profile
신발 좋아하는 웹 프론트엔드 개발자

0개의 댓글

관련 채용 정보