Home [JavaScript] Gsap ScrollTrigger사용하기
Post
Cancel

[JavaScript] Gsap ScrollTrigger사용하기


ScrollTrigger란?

scroll 위치에 맞춰서 애니메이션을 실행시키고 싶은 경우 gsap 의 scrollTrigger을 사용하면 보다 쉽게 구현이 가능하다!


기본 Setting

✅ gsap setting

cdn 파일로 불러오기

1
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.3/gsap.min.js"></script>

npm 설치

1
npm install gsap

✅ ScrollTrigger setting

gsap 속성에서 scrollTrigger 속성을 사용할 수 있게 된다.

1
gsap.registerPlugin(ScrollTrigger);

기본 속성들

✅ trigger

1
2
3
4
5
gsap.to(".box", {
  scrollTrigger: {
    trigger: "",
  },
});

scrollTrigger: {trigger: "target"}

  • target : 스크롤의 기준이 될 개체를 class명,id로 선택가능
  • ✅ start,end

    1
    2
    3
    4
    5
    6
    
    gsap.to(".box", {
      scrollTrigger: {
        trigger: ".box",
        start: ""
      },
    });
    

    값이 하나인 경우는 선택한 요소에 높이를 기준으로 시작선과 끝맺음 선을 정한다.

  • top,center,bottom,px,%등의 단위 사용가능
  • See the Pen Untitled by taewok (@taewok) on CodePen.


    값이 2개인 경우는 첫번쨰는 선택한 요소에 높이를 기준으로 시작선과 끝맺음 선을 정하고 두번째 값은 viewPort 높이를 기준으로 시작선과 끝맺음 선을 정한다.

    See the Pen 2.scrollTrigger start,end by taewok (@taewok) on CodePen.

    ✅ markers

    기본적으론 false이며 true로 설정시 시작선과 끝맺음선이 보이게 된다.

    1
    2
    3
    4
    5
    6
    7
    8
    
    gsap.to(".box", {
          scrollTrigger: {
          trigger: ".box",
          start: "top",
          end: "bottom",
          markers: true,
        }
    });
    

    스타일링도 설정해 줄 수 있다.

    1
    2
    3
    4
    5
    
    markers: {
        startColor: "red",
        endColor: "yellow",
        fontSize: "3rem"
    }
    
    속성명설명
    startColor시작선의 색깔변경
    endColor끝맺음 선의 색깔변경
    fontSize가이드 문자에 font-size 변경

    ✅ toggleActions

    toggleActions:"none none none none"

    왼쪽에서 순서대로

    속성명설명
    onEnterscroller-start선이 start선을 지나갔을 떄
    onLeavescroller-end 선이 end 선을 지날 떄
    onEnterBackend 선을 지나쳤던 scroller-end 선이 다시 돌아올 때
    onLeaveBackstart 선을 지나쳤던 scroller-start 선이 다시 돌아올 때

    총 4개의 action을 간편한 문자열로 정해줄 수 있다.

    속성명설명
    play애니메이션이 실행중이라면 계속 실행
    pause애니메이션이 진행중이라면 그대로 멈춘다.
    resumepause에 의해 멈춘 애니메이션을 그자리에서 재개
    reverse처음 위치로 되돌아간다. duration을 적용한 만큼 걸린다.
    restart애니메이션을 처음 위치에서 다시 시작
    reset처음 위치로
    complete바로 애니메이션의 끝나는 지점으로
    none아무것도 없다.

    See the Pen Untitled by taewok (@taewok) on CodePen.


    toggleActions이 아닌 세부적인 속성으로 사용도 가능하다. 함수가능

    See the Pen scrollTrigger onEnter,onLeave,onEnterBack,onLeaveBack by taewok (@taewok) on CodePen.

    ✅ scrub

    기본값은 false이며 duration이나 delay에 관계없이 target인 요소에 스크롤이 요소 이전으로 돌아가면 애니메이션 역시 되돌아가는 기능
  • 애니메이션이 start하는 지점부터 end하는 지점까지 자연스럽게 이어진다.
  • See the Pen scrollTrigger scrub by taewok (@taewok) on CodePen.


    수치를 숫자로 줬을떄

    See the Pen 2.scrollTrigger scrub by taewok (@taewok) on CodePen.


    마치며

    혹시 잘못된 정보나 궁금하신 게 있다면 편하게 댓글 달아주세요.
    지적이나 피드백은 언제나 환영입니다.

    This post is licensed under CC BY 4.0 by the author.