Home [JavaScript] Gsap 사용하기
Post
Cancel

[JavaScript] Gsap 사용하기


Gsap이란?

GreenSock Animation Platform의 약자이며 쉽게 사용할 수 있는 아주 강력한 타임라인 기반의 자바스크립트 애니메이션 라이브러리이다. 가볍고 사용방법이 쉽다.


Setting

방법1

CDN 파일로 가져오기 간편하게 코드 한줄을 추가해주면 된다.

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

방법2

npm 설치 터미널에 작성하고 Enter를 누르면 설치가 진행된다.

1
npm install gsap

기본 메소드

✅ gsap.to()

  • 애니메이션의 움직임의 끝나는 점을 지정하는 애니메이션

gsap.to("target", {속성: 속성값, ....});

  • target : 애니메이션을 적용할 개체를 태그,class명,id로 선택가능
  • 속성(values) : 애니메이션과 관련된 속성을 설정
  • 2초에 걸쳐 x100px로 이동한다.

    See the Pen gsap.to() by taewok (@taewok) on CodePen.

    ✅ gsap.from()

    • 애니메이션의 시작 점을 지정하는

    x150px에서 시작하며 이동하며 5초 뒤에 원래 자리로 2초에 걸쳐 돌아온다.

    See the Pen gsap.from() by taewok (@taewok) on CodePen.

    ✅ gsap.fromTo()

    • 애니메이션의 시작 점과 끝나는 점을 지정하는

    gsap.fromTo("target", { 시작 속성: 속성값, .... },{ 끝나는 속성: 속성값, .... });

  • target : 애니메이션을 적용할 개체를 태그,class명,id로 선택가능
  • 시작 속성 : 애니메이션 시작 위치를 조정(ease, duration, delay, onComplete 사용 못함)
  • 끝나는 속성 : 애니메이션과 관련된 속성을 설정
  • x200px에서 시작하며 y50px로 2초에 걸쳐 이동한다.

    See the Pen gsap.fromTo() by taewok (@taewok) on CodePen.

    ✅ gsap.timeline()

    • 연속적인 애니메이션을 간편하게 설정

    위쪽 코드를 기준으로 타임라인 애니메이션들은 순차적으로 실행된다. 중간에 기본 gsap.to(),.from() 등은 타임라인 메소드에 영향이 아니므로 바로 실행된다.

  • 순차적인 애니메이션 옳은 예시
    gsap.timeline().to("target",{속성: 속성값...}) 순서1
    gsap.timeline().to("target",{속성: 속성값...}) 순서2
    gsap.timeline().to("target",{속성: 속성값...}) 순서3
  • 순차적인 애니메이션 틀린 예시
    gsap.to("target",{속성: 속성값...}) 순서1
    gsap.to("target",{속성: 속성값...}) 순서1
    gsap.to("target",{속성: 속성값...}) 순서1
  • gsap.to() 메소드에 delay를 다 계산해가면서 순차적 애니메이션을 할게 아니라면 timeline()을 쓰자!

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

    ✅ play(), pause(), resume(), reverse(), restart()

    • 애니메이션을 멈추거나 재실행하는 등의 핸들링 메소드

    See the Pen gsap.play(), .pause(), resume(), reverse(), restart() by taewok (@taewok) on CodePen.


    gsap 속성들

    속성명CSS설명
    x: 100transform: translateX(100px)요소를 X축의 100px만큼 이동
    y: 100transform: translateY(100px)요소를 y축의 100px만큼 이동
    xPercent: 50transform: translateX(50%)요소를 x축의 50%만큼 이동
    yPercent: 50transform: translateY(50%)요소를 y축의 50%만큼 이동
    rotation: 360transform: translateY(50%)요소가 360도 회전
    scale: 2scale(2)요소의 크기를 2배로
    속성명설명
    delay몇초 뒤에 변화가 시작할 것 인지
    duration요소의 변화가 몇초에 걸쳐 일어날건지
    repeat요소의 변화가 끝나고 반복해야 하는 횟수
    staggertarget이 여러 요소라면 순차적으로 몇초마다 실행할지 결정
    yoyo애니메이션의 반복 여부 기본값(false)
    onComplete애니메이션이 끝나면 실행될 함수
    ease속도 효과 옵션 (none, power1 , power2, power3, power4, back, elastic, bounce, rough, slow, steps, circ, expo, sine)

    마치며

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

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