자바스크립트 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을 사용하면 웹 페이지의 로딩 속도를 개선하고 사용자 경험을 향상시킬 수 있습니다.