gsap 만으로 모든 애니메이션 기능을
만들수 있는 유용한 라이브러리 입니다.
설치
npm install @gsap/react gsap
기본 사용법
scrollTrigger
기본
이렇게 설정하면 View 에서 보이자 마자 애니메이션이 실행됩니다.
toggleActions
- 첫 번째 restart: .b 요소가 화면에 들어오면 애니메이션을 처음부터 다시 시작합니다.
- 두 번째 pause: .b 요소가 화면에서 사라질 때 애니메이션이 멈춥니다.
- 세 번째 reverse: .b 요소가 화면에 다시 들어올 때 애니메이션을 반대로 실행합니다.
- 네 번째 none: .b 요소가 화면에서 다시 사라질 때는 아무 행동도 하지 않습니다.
resume 라는 옵션도 있는데 만약 3번째 reverse 에 넣으면 정지됐던 애니메이션이 다시 재개 된다.
"start" and "end"
애니메이션이 어디서 실행될지 정해줍니다.
설정값 : top, center, bottom, px, %
즉 start 지점이 top cetner 라면
element 기준으로 맨 위에서 View 기준으로 가운데로 맞춰줬을 때 실행됩니다.
end 는 애니메이션이 어디서 끝날지 정해줍니다. bottom bottom 이면 element 가 완전히 사라질 때 애니메이션이 멈추겠죠!!
start: "top center" => start , scroller-start
end: "top, 100px" => end , scroller-end
scrub
애니메이션이 스크롤에 따라 동작하게 합니다.
즉 전에는 요소가 보이면 애니메이션이 자동으로 동작했는데 scrub 이라는 기능을 적용하면
View 기준으로 스크롤할때 애니메이션이 스크롤에 따라 동작하게 됩니다.
scrub: true 가 일반적이지만 저렇게 숫자를 넣어 주면 스크롤할 때 즉각 반응하는것이 아니라 스크롤 속도에 따라 동적으로 바뀝니다.
만약 이러한 코드가 있다면 밑에 영상처럼 작동합니다.
b 가 className 인 Box 기준으로 애니메이션이 작동됩니다.
애니메이션 2가지 이상 적용하기
이렇게 timeline 이라는 기능을 이용하면 애니메이션을 순차적으로 2가지 이상 적용할 수 있습니다.
즉 x 축으로 400 , 360 도 회전을 한 뒤에 배경이 빨간색으로 바뀌는 애니메이션이 적용됩니다.
Pin
스크롤 중에 특정 요소를 고정시켜, 스크롤해도 그 위치에 머물러 있게 하는 기능입니다.
스크롤 애니메이션은 스크롤을 하면 자연스럽게 애니메이션이 적용되면서 element 들이 view 에서 위쪽으로 벗어나기 시작합니다.
하지만 pin 으로 고정을 한다면 스크롤을 하며 애니메이션이 끝날 때 까지 그 자리에서 애니메이션이 적용되다가 애니메이션이 끝나면
요소가 화면밖으로 벗어날 수 있습니다.
검은색 박스를 보시면 스크롤해도 view 기준으로 올라가는 것이 아니라 그 위치에서 애니메이션이 적용됩니다.
스크롤할 시 좌 , 우 움직이는 것 처럼 만들기
<View/> 를 하나 안붙여주면 왜인지 마지막에 애니메이션이 끊기기 때문에 이렇게 해주어야 한다.
end: "+=10000" 은 container 기준으로 스크롤을 10000px 해야 Box 들의 애니메이션을 끝낼 수 있습니다.
'라이브러리' 카테고리의 다른 글
browser-image-compression (0) | 2024.07.15 |
---|---|
React 에서 emtion 사용하기 (0) | 2024.07.09 |
React 에서 AOS 사용하는 방법 (0) | 2024.05.18 |
React-router-dom (1) | 2024.05.01 |
Styled-components (1) | 2024.05.01 |