[javascript] ScrollMagic을 사용하여 스크롤에 따라 요소가 나타나는 순서를 제어하기

웹 페이지에서 스크롤에 따라 요소가 나타나고 사라지는 효과를 구현하기 위해 ScrollMagic 라이브러리를 사용할 수 있습니다. ScrollMagic은 JavaScript 기반의 라이브러리로, 스크롤 이벤트를 감지하고 해당 이벤트에 따라 요소의 애니메이션을 제어하는 기능을 제공합니다.

ScrollMagic 설치하기

먼저 ScrollMagic을 사용하기 위해서는 해당 라이브러리를 설치해야 합니다. 다음의 명령어를 사용해서 npm을 통해 ScrollMagic을 설치할 수 있습니다.

npm install scrollmagic

ScrollMagic 기본 사용법

ScrollMagic을 사용하기 위해 다음과 같이 HTML에 필요한 요소들을 추가합니다.

<div id="scene">
  <div class="animate">요소가 나타나는 순서를 제어할 요소 1</div>
  <div class="animate">요소가 나타나는 순서를 제어할 요소 2</div>
  <div class="animate">요소가 나타나는 순서를 제어할 요소 3</div>
</div>

그리고 다음과 같은 JavaScript 코드를 작성해서 ScrollMagic을 초기화하고 요소의 애니메이션을 제어할 수 있습니다.

// ScrollMagic 초기화
var controller = new ScrollMagic.Controller();

// 요소의 애니메이션을 제어할 Scene 생성
var scene = new ScrollMagic.Scene({
  triggerElement: "#scene",
  triggerHook: "onEnter",
  duration: "100%"
})
.setClassToggle(".animate", "show")
.addTo(controller);

위 코드에서 triggerElement는 스크롤 이벤트가 시작될 트리거 요소를 지정하고, triggerHook은 트리거 요소가 어느 지점에서 스크롤 이벤트를 감지할지 설정합니다. duration은 트리거 요소가 뷰포트에 완전히 진입해서 완전히 나타나기까지 걸리는 스크롤의 비율을 의미합니다.

위 코드에서는 setClassToggle() 메서드를 사용하여 show 클래스를 요소에 토글(toggle)합니다. 따라서 요소가 뷰포트에 진입하면 show 클래스가 추가되어 요소가 나타나게 됩니다.

추가 커스터마이징

ScrollMagic을 사용하여 스크롤에 따라 요소가 나타나는 순서를 제어할 때, 다양한 커스터마이징이 가능합니다. triggerHookduration을 조절하여 요소가 나타나는 시점과 시간을 조정할 수 있으며, setClassToggle() 대신 setTween() 메서드를 사용하여 요소의 애니메이션을 좀 더 세밀하게 제어할 수도 있습니다.

더 자세한 ScrollMagic 사용법은 공식 문서를 참고하세요.