ScrollMagic은 JavaScript 라이브러리로, 웹 페이지의 스크롤 이벤트를 다룰 수 있게 해줍니다. 이 라이브러리를 사용하여 요소의 스크롤 위치에 도달했을 때 특정 함수를 호출하는 방법을 알아보겠습니다.
설치하기
먼저 ScrollMagic을 설치해야 합니다. 아래의 명령을 사용하여 npm을 통해 ScrollMagic을 설치할 수 있습니다.
npm install scrollmagic
ScrollMagic 설정하기
import ScrollMagic from 'scrollmagic';
import { TweenMax } from 'gsap';
// ScrollMagic Controller 생성
const controller = new ScrollMagic.Controller();
// 요소 선택하기
const element = document.getElementById('my-element');
// TweenMax를 사용하여 애니메이션 설정
const tween = TweenMax.to(element, 0.5, { opacity: 1 });
// ScrollMagic Scene 생성
const scene = new ScrollMagic.Scene({
triggerElement: element,
triggerHook: 'onEnter', // 요소가 화면에 들어올 때
})
.setTween(tween)
.addTo(controller);
위의 코드에서는 ScrollMagic.Controller를 생성하고, 원하는 요소를 선택한 후 TweenMax를 사용하여 애니메이션을 설정합니다. ScrollMagic.Scene을 생성하여 Scene의 트리거(element)와 트리거 후크(triggerHook)를 설정합니다. 트리거 후크는 언제 트리거를 발생시킬지를 결정합니다.
트리거 위치에 대한 특정 함수 호출하기
ScrollMagic을 사용하여 요소의 스크롤 위치에 도달했을 때 특정 함수를 호출하려면 addIndicators
옵션을 사용하여 Scene의 트리거 위치를 표시할 수 있습니다. 다음은 트리거 위치에 도달했을 때 호출될 함수의 예시입니다.
const scene = new ScrollMagic.Scene({
triggerElement: element,
triggerHook: 'onEnter',
reverse: false, // 트리거 후 다시 돌아오지 않음
})
.setTween(tween)
.addIndicators() // 추가
.on('enter', function () {
// 트리거 위치에 도달하면 호출될 함수
console.log('요소의 스크롤 위치에 도달했습니다!');
})
.addTo(controller);
위의 코드에서는 addIndicators
메서드를 사용하여 ScrollMagic.Scene을 디버깅 모드로 설정하고, on('enter')
이벤트 핸들러를 통해 트리거 위치에 도달했을 때 호출할 함수를 정의합니다.
이제 해당 요소가 스크롤될 때마다 특정 함수가 호출되는 ScrollMagic Scene을 구성할 수 있습니다. 위의 예시 코드를 참고하여 원하는 동작을 구현해보세요.
더 자세한 정보는 ScrollMagic 공식 문서를 참고하시기 바랍니다.