[javascript] ScrollReveal을 이용한 사이드메뉴 스크롤 효과 구현 방법

이번 글에서는 ScrollReveal 라이브러리를 이용하여 사이드메뉴의 스크롤 효과를 구현하는 방법에 대해 알아보겠습니다.

ScrollReveal 소개

ScrollReveal은 웹페이지의 스크롤 이벤트를 감지하여 요소들을 애니메이션으로 표시해주는 JavaScript 라이브러리입니다. 우리는 이 라이브러리를 이용하여 사이드메뉴가 스크롤되었을 때 나타나는 효과를 구현할 것입니다.

설치 및 설정

먼저 ScrollReveal을 사용하기 위해 라이브러리를 설치해야 합니다. npm을 사용한다면 다음 명령어를 사용하여 설치할 수 있습니다:

npm install scrollreveal

또는, script 태그를 이용하여 CDN을 통해 직접 추가할 수도 있습니다:

<script src="https://unpkg.com/scrollreveal@4.0.7/dist/scrollreveal.min.js"></script>

설치가 완료되면 ScrollReveal을 초기화하고 사용할 요소를 설정해야 합니다. 다음은 기본 설정 코드입니다:

const sr = ScrollReveal({
    origin: 'left',  // 나타날 방향
    distance: '20px',  // 나타나는 거리
    duration: 1000,  // 애니메이션 속도
    delay: 200,  // 애니메이션 지연 시간
    mobile: false  // 모바일에서도 사용할지 여부
});

// 나타나게 할 요소 선택
const elements = document.querySelectorAll('.scroll-element');

// 요소에 애니메이션 효과 적용
sr.reveal(elements);

위 예제 코드에서 origin은 요소가 나타날 방향을 지정합니다. distance는 요소가 나타나는 거리를 지정하며, duration은 애니메이션의 속도를 지정합니다. delay는 애니메이션의 지연 시간을 설정하고, mobile은 모바일 환경에서도 사용할지 여부를 결정합니다.

ScrollReveal은 지정된 요소들에 대해 애니메이션 효과를 적용하기 위해 reveal() 메서드를 호출합니다.

스타일링

ScrollReveal을 이용하여 스크롤 효과를 구현하려면 요소를 적절하게 스타일링해야합니다. 사이드메뉴를 구현한다고 가정하고, 다음은 요소에 대한 기본 스타일링 코드입니다:

.scroll-element {
    opacity: 0;
    transform: translateX(-20px);
    transition: opacity 500ms ease, transform 500ms ease;
}

위 코드에서 scroll-element 클래스에 대해 초기에 투명도를 0으로 설정하고, X축으로 -20px만큼 이동하는 애니메이션 효과를 줍니다.

이제 ScrollReveal을 초기화하고 애니메이션을 적용할 요소들을 설정하였으니, 스크롤을 통해 사이드메뉴가 나타나는 효과를 확인할 수 있습니다.

참고 자료