[javascript] ScrollMagic을 사용하여 페이지 스크롤을 수직으로 이동하기

이번 블로그 포스트에서는 ScrollMagic 라이브러리를 사용하여 페이지의 컨텐츠를 수직으로 이동하는 방법에 대해 알아보겠습니다.

ScrollMagic이란?

ScrollMagic은 JavaScript로 작성된 애니메이션 컨트롤러 라이브러리입니다. 이 라이브러리를 사용하면 스크롤 이벤트를 감지하고, 특정 요소에 대한 애니메이션 효과를 적용할 수 있습니다. ScrollMagic은 대부분의 모던 브라우저에서 동작하며, GSAP(Greensock Animation Platform)와 같은 애니메이션 라이브러리와 함께 사용할 수도 있습니다.

ScrollMagic 설치하기

ScrollMagic은 CDN을 통해 간편하게 설치할 수 있습니다. 아래의 코드를 HTML 파일의 <head> 태그 내에 추가하세요.

<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/ScrollMagic.min.js"></script>

그리고 GSAP 라이브러리도 함께 설치해야 합니다. 아래의 코드를 같은 위치에 추가하세요.

<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/animation.gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.7.1/gsap.min.js"></script>

ScrollMagic을 사용하여 수직 스크롤 이벤트 만들기

  1. 먼저 ScrollMagic 애니메이션 컨트롤러를 초기화해야 합니다. 아래의 코드를 <script> 태그 내에 추가하세요.
var controller = new ScrollMagic.Controller();
  1. 수직 스크롤 이벤트를 만들기 위해, ScrollMagic에서 Scene 객체를 생성해야 합니다. 아래의 코드를 <script> 태그 내에 추가하세요. triggerElement는 애니메이션을 적용할 요소의 선택자를 지정합니다.
var scene = new ScrollMagic.Scene({triggerElement: '#element'})
    .setClassToggle('#element', 'active')
    .addTo(controller);

위의 코드에서 triggerElement는 애니메이션을 적용할 요소의 ID를 선택합니다. setClassToggle 메서드를 사용하여 애니메이션을 적용할 요소에 특정 클래스를 토글합니다. 이 예제에서는 active라는 클래스를 토글하도록 설정하였습니다. 마지막으로 addTo 메서드를 사용하여 새로 생성한 Scene 객체를 컨트롤러에 추가합니다.

  1. CSS를 사용하여 애니메이션 효과를 적용합니다. 아래의 코드는 active 클래스가 적용된 요소에 대해 애니메이션을 적용하는 예시입니다.
#element.active {
    opacity: 1;
    transform: translateY(100px);
    transition: opacity 1s, transform 1s;
}

위의 코드에서는 active 클래스가 적용된 요소의 투명도와 Y 축 이동을 변경하여 애니메이션 효과를 만듭니다.

결론

ScrollMagic을 사용하여 수직으로 스크롤하는 페이지를 만드는 방법에 대해 알아보았습니다. ScrollMagic은 강력한 라이브러리로, 다양한 애니메이션 효과를 적용할 수 있습니다. ScrollMagic 공식 문서를 참고하여 더 자세한 사용 방법을 익히시기 바랍니다.

참고 자료: