자바스크립트 Lazy Loading을 활용한 페이드 인 효과 구현

이번 포스트에서는 자바스크립트 Lazy Loading을 사용하여 이미지나 콘텐츠가 페이드 인되는 효과를 구현하는 방법에 대해 알아보겠습니다.

1. Lazy Loading이란?

Lazy Loading은 웹 페이지에서 이미지나 비디오와 같은 콘텐츠를 필요한 순간에만 불러오는 기법을 의미합니다. 이를 통해 초기 페이지 로딩 속도를 개선하고, 필요한 콘텐츠가 화면에 표시되기 전까지 로딩을 지연시킬 수 있습니다.

2. 페이드 인 효과 구현하기

페이드 인 효과를 구현하기 위해 먼저 Lazy Loading을 위한 JavaScript 라이브러리인 Intersection Observer를 사용합니다. Intersection Observer는 요소가 화면에 진입했을 때를 감지할 수 있도록 도와줍니다.

2.1 HTML 마크업

다음과 같이 이미지를 감싸는 <div> 요소를 추가합니다.

<div class="fade-in">
  <img src="placeholder.jpg" data-src="image.jpg" alt="Image">
</div>

2.2 CSS 스타일링

페이드 인 효과를 위해 CSS를 추가합니다.

.fade-in {
  opacity: 0;
  transition: opacity 1s;
}

.fade-in.loaded {
  opacity: 1;
}

2.3 JavaScript 코드

const fadeIns = document.querySelectorAll('.fade-in');

const options = {
  threshold: 0.5
};

const observer = new IntersectionObserver(function(entries, observer) {
  entries.forEach(entry => {
    if (entry.intersectionRatio > 0) {
      entry.target.classList.add('loaded');
      observer.unobserve(entry.target);
    }
  });
}, options);

fadeIns.forEach(fadeIn => {
  observer.observe(fadeIn);
});

위의 JavaScript 코드는 Intersection Observer를 이용하여 요소가 화면에 진입했을 때 loaded 클래스를 추가하고, 페이드 인 효과를 적용합니다.

3. 결과 확인하기

위에서 작성한 코드를 HTML 파일에 추가하고 웹 페이지를 브라우저에서 열어보세요. 스크롤을 내리면 이미지가 페이드 인되는 효과를 볼 수 있습니다.

4. 결론

이번 포스트에서는 자바스크립트 Lazy Loading을 활용하여 페이드 인 효과를 구현하는 방법을 알아보았습니다. Lazy Loading을 사용하면 웹 페이지의 로딩 속도를 개선하고 사용자 경험을 향상시킬 수 있습니다.