[javascript] ScrollReveal을 이용한 스크롤 트리거 구현 방법

웹 페이지에서 스크롤 트리거를 사용하면 사용자가 스크롤을 하면서 요소들을 애니메이션 또는 효과와 함께 나타낼 수 있습니다. 이를 구현하기 위해 ScrollReveal 라이브러리를 사용할 수 있습니다. ScrollReveal은 간편한 구현과 다양한 옵션을 제공하며, 자바스크립트로 사용할 수 있는 많은 기능들이 있습니다.

1. ScrollReveal 설치하기

먼저, ScrollReveal을 사용하기 위해서는 scrollreveal 패키지를 설치해야 합니다. npm을 사용한다면 아래의 명령을 실행하여 패키지를 설치할 수 있습니다.

npm install scrollreveal

웹페이지에서 직접 사용하고자 한다면, 아래의 CDN 링크를 HTML 문서의 <head> 태그 안에 추가합니다.

<script src="https://unpkg.com/scrollreveal"></script>

2. ScrollReveal 설정하기

ScrollReveal을 사용하기 위해 스크립트 파일을 불러오고 초기화할 필요가 있습니다. 스크립트가 모두 로드된 후에 ScrollReveal을 초기화해야 원활한 동작을 보장할 수 있습니다.

// 스크립트 로드 후 실행되어야 함을 보장하는 코드
window.onload = function () {
  // ScrollReveal 초기화
  window.sr = ScrollReveal();

  // 옵션 설정
  sr.reveal('.box', {
    duration: 1000, // 애니메이션 지속 시간 (밀리초)
    origin: 'left', // 나타날 방향 (left, right, top, bottom)
    distance: '50px', // 애니메이션 이동 거리
    delay: 200, // 애니메이션 지연 시간 (밀리초)
    easing: 'ease', // 애니메이션 이징 효과
    reset: true // 애니메이션을 반복될 수 있도록 초기화
  });
};

위의 예제 코드에서는 .box라는 클래스를 가진 요소들이 스크롤 트리거에 따라 왼쪽에서 나타나도록 설정되었습니다. 애니메이션 지속 시간, 이동 거리, 지연 시간, 이징 효과 등의 옵션들은 필요에 맞게 설정할 수 있습니다.

3. HTML 마크업 작성하기

ScrollReveal을 통해 애니메이션을 적용할 요소들에 대해 CSS 클래스를 지정해야 합니다. 위의 예제에서는 .box 클래스를 사용했습니다. 따라서 애니메이션을 적용하려는 요소들에 해당 클래스를 추가해주세요.

<div class="box">요소1</div>
<div class="box">요소2</div>
<div class="box">요소3</div>

스크롤 트리거로 나타나길 원하는 요소들에 .box 클래스를 추가해주시면 됩니다.

4. 결과 확인하기

위의 구현 과정을 마쳤다면, 브라우저에서 페이지를 열어 스크롤을 시도해보세요. 설정한 요소들이 지정한 애니메이션 옵션에 따라 나타날 것입니다.

잘 작동하지 않는다면, 브라우저의 개발자 도구를 이용하여 오류를 확인하고 디버그할 수 있습니다.

이것으로 ScrollReveal을 이용한 스크롤 트리거 구현 방법을 알아보았습니다. 다양한 애니메이션 효과와 옵션을 적용하여 웹 페이지를 더욱 동적으로 만들어보세요!

참고 자료