[javascript] ScrollReveal을 활용한 스크롤 이벤트 이동 감지 방법

소개

스크롤 이벤트를 감지하고 웹 페이지에서 스크롤 이동 시 특정 작업을 수행하고 싶은 경우가 있을 수 있습니다. ScrollReveal 라이브러리는 스크롤 이벤트를 캡처하고 요소가 나타나는 방식을 제어할 수 있도록 해줍니다. 이를 활용하여 웹 페이지의 스크롤 이동을 감지하고 반응할 수 있는 기능을 구현할 수 있습니다.

설치

먼저, ScrollReveal 라이브러리를 프로젝트에 추가해야 합니다. 아래 명령을 사용하여 npm을 통해 라이브러리를 설치합니다.

npm install scrollreveal

사용 방법

  1. ScrollReveal 라이브러리를 가져옵니다.
import ScrollReveal from 'scrollreveal';
  1. ScrollReveal 객체를 생성합니다.
const sr = ScrollReveal();
  1. ScrollReveal을 사용할 요소를 선택하고 옵션을 설정합니다.
const myElement = document.querySelector('.my-element');
const options = {
  origin: 'bottom',
  distance: '20%',
  duration: 1000,
  reset: true,
};

sr.reveal(myElement, options);
  1. 스크롤 이벤트를 감지하고 요소가 나타나는 순간에 콜백 함수를 실행합니다.
sr.reveal('.my-element', {
  // 옵션 설정
  // 콜백 함수 실행
  afterReveal: (el) => {
    console.log(el);
    alert('요소가 나타났습니다.');
  },
});

사용 예제

아래는 ScrollReveal을 사용하여 스크롤 이벤트 이동을 감지하고 특정 작업을 수행하는 간단한 예제입니다.

import ScrollReveal from 'scrollreveal';

const sr = ScrollReveal();

// 페이지 내의 모든 요소를 숨김
sr.reveal('.my-element', {
  opacity: 0,
  reset: true,
});

// 요소가 스크롤에 의해 나타날 때 페이드 인 효과 적용
sr.reveal('.my-element', {
  duration: 1000,
  origin: 'bottom',
  distance: '20%',
  delay: 500,
  opacity: 0,
});

// 요소가 모두 나타난 후 콜백 함수 실행
sr.reveal('.my-element', {
  afterReveal: (el) => {
    console.log(el);
    alert('요소가 나타났습니다.');
  },
});

위 예제에서는 페이지 내의 모든 .my-element 요소를 숨긴 뒤, 스크롤에 따라 요소가 나타나면서 페이드 인 효과를 주고 있습니다. 모든 요소가 나타난 후에는 콜백 함수가 실행되어 알림창이 나타나게 됩니다.

참고 자료

  1. ScrollReveal 공식 문서: https://scrollrevealjs.org/
  2. NPM 패키지: https://www.npmjs.com/package/scrollreveal