Post

GSAP) GSAP_ScrollAnime

💡GSAP ScrollTrigger 애니메이션 기능 살펴보기

GSAP(GreenSock Animation Platform)은

GSAP은 GreenSock Animation Platform의 약자로, HTML, CSS 및 JavaScript를 사용하여 웹 애니메이션을 만들기 위한 강력한 라이브러리입니다.
GSAP은 웹 개발자들에게 유연하고 성능이 우수한 애니메이션 효과를 구현할 수 있는 다양한 도구와 기능을 제공합니다.


01. 기본 애니메이션 설정하기

ScrollTrigger와 함께 gsap.to 메서드를 사용하면, 다음과 같이 요소를 원하는 방향으로 쉽게 움직이게 할 수 있습니다.

1
2
3
4
5
6
gsap.to("#element", {
    duration: 2,
    x: 500,
    rotation: 360,
    borderRadius: 100
});


여기서는 요소를 오른쪽으로 500px 움직이고, 360도 회전시키며, 테두리의 모양을 원형으로 변경합니다.


02. 트리거 요소 설정

scrollTrigger 옵션을 사용하면 애니메이션이 시작되는 시점을 정확히 제어할 수 있습니다. 예를 들어, 특정 요소가 화면에 등장하는 순간 애니메이션을 시작하게 설정할 수 있습니다.

1
2
3
4
5
6
7
8
gsap.to("#element", {
    duration: 2,
    x: 500,
    rotation: 360,
    scrollTrigger: {
        trigger: "#triggerElement"
    }
});


03. 스크롤 방향에 따른 애니메이션 제어

toggleActions 옵션을 활용하면, 사용자가 스크롤을 올릴 때와 내릴 때 각각 다른 애니메이션 효과를 적용할 수 있습니다.

1
2
3
4
5
6
7
8
gsap.to("#element", {
    duration: 2,
    x: 500,
    rotation: 360,
    scrollTrigger: {
        toggleActions: "play none reverse none"
    }
});


04. 애니메이션 시작과 끝 조절하기

애니메이션의 시작과 끝 위치를 ‘start’와 ‘end’ 옵션으로 세밀하게 설정할 수 있습니다.

1
2
3
4
5
6
7
8
9
gsap.to("#element", {
    duration: 2,
    x: 500,
    rotation: 360,
    scrollTrigger: {
        start: "top 50%",
        end: "bottom 30%"
    }
});


05. 스크롤에 따른 부드러운 애니메이션 조절

scrub 옵션을 통해 스크롤을 할 때 애니메이션의 속도를 스크롤의 속도에 맞춰 조절할 수 있습니다.

1
2
3
4
5
6
7
8
gsap.to("#element", {
    duration: 2,
    x: 500,
    rotation: 360,
    scrollTrigger: {
        scrub: true
    }
});


06. 요소를 스크롤에 고정하기

pin 옵션을 활용하면 요소를 화면에 고정시켜 스크롤에 따라 같이 움직이도록 할 수 있습니다.

1
2
3
4
5
6
7
8
gsap.to("#element", {
    duration: 2,
    x: 500,
    rotation: 360,
    scrollTrigger: {
        pin: true
    }
});


07. 클래스 토글로 다이내믹한 변화 주기

스크롤 이벤트에 따라 요소의 클래스를 추가하거나 제거하는 것도 가능합니다.

1
2
3
4
5
6
7
8
gsap.to("#element", {
    duration: 2,
    x: 500,
    rotation: 360,
    scrollTrigger: {
        toggleClass: "active"
    }
});


08. 콜백 함수로 더 많은 상호작용 추가

onUpdate와 onToggle과 같은 콜백 함수를 사용하여 스크롤의 각 단계에서 원하는 코드를 실행시킬 수 있습니다. 이를 통해 애니메이션의 현재 상태를 로그로 확인하거나, 특정 조건에서 추가적인 액션을 실행시킬 수 있습니다.

1
2
3
4
5
6
7
8
9
gsap.to("#element", {
    duration: 2,
    x: 500,
    rotation: 360,
    scrollTrigger: {
        onUpdate: (self) => { console.log("현재 진행 상태:", self.progress.toFixed(3)); },
        onToggle: (self) => { console.log("애니메이션 활성화 여부:", self.isActive); }
    }
});
This post is licensed under CC BY 4.0 by the author.