React에서 GSAP 애니메이션을 트리거하는 재사용 가능한 버튼을 만드는 방법!
7984 단어 reacttutorialjavascript
0단계: npm i/yarn이 필요한 종속성을 추가합니다.
* React
* gsap
ScrollBtn 구성 요소를 가져올 기본 파일/페이지가 이미 있다고 가정합니다.
1단계: 버튼 구성 요소 만들기
Components 폴더에 ScrollBtn.js 파일을 만듭니다.
2단계: GSAP 및 ScrollToPlugin 가져오기
import { gsap } from 'gsap/dist/gsap';
import { ScrollToPlugin } from 'gsap/dist/ScrollToPlugin';
3단계: ScrollToPlugin 등록
이것은 프로세스에서 중요한 단계입니다. 플러그인을 등록하지 않으면 앱이 넘어지고 그 이유가 궁금할 것입니다.
(완전히 경험에서 말하는 것이 아닙니다.)
import { gsap } from 'gsap/dist/gsap';
import { ScrollToPlugin } from 'gsap/dist/ScrollToPlugin';
gsap.registerPlugin(ScrollToPlugin);
4단계: 버튼을 만드세요!
이 컴포넌트는 props의 사용을 요구할 것입니다! 이것이 재사용이 가능하도록 하는 핵심입니다. 대상 구성 요소/섹션에 ID를 지정하기만 하면 됩니다.
구성 요소의 기본은 다음과 같습니다.
const ScrollBtn = (props) => {
return(
<div onClick={handleClick}>
<p>Click to scroll</p>
</div>
);
};
export default ScrollBtn
div/button에 onClick 속성이 있음을 알 수 있습니다.
이제 그 함수를 만들어 봅시다!
5단계: 트리거 기능 만들기
이것이 ScrollToPlugin이 필요한 곳입니다.
return 문 위에 handleClick이라는 함수를 만들고 이벤트 리스너이기 때문에 "event"에 e를 전달합니다.
e.stopPropagation()을 추가하는 것을 잊지 마십시오. 사용자가 이상한 이유로 버튼을 반복적으로 누르면 이벤트가 버블링되거나 서로 겹쳐지지 않습니다. 당신의 흐름과 경험을 다치게하십시오.
const ScrollBtn = (props) =>{
const handleClick = (e) =>{
e.stopPropagation()
})
}
return( ...)
마지막으로 gsap 및 scrollTo 기능을 추가합니다.
const handleClick = (e) =>{
e.stopPropagation()
gsap.to(window, {
duration: 1,
scrollTo: {
y: `${props.target}`,
offsetY: 70,
}
})
}
여기에서 설명할 것이 꽤 있습니다.
먼저 gsap 구문에 따라 애니메이션될 전체 대상 요소를 선언합니다. 이 경우 전체 창입니다.
"window"는 기본적으로 사용자의 뷰포트를 대상으로 하는 JavaScript의 예약된 키워드입니다.
다음으로 우리는 우리의 행동을 선언합니다:
*scrollTo는 우리의 주요 작업이며 자체 키 세트를 가지고 있습니다.
(간격 – 패딩 및 여백 – UX/UI 디자인에서 고려해야 할 매우 중요한 요소입니다.)
React prop 메서드를 통해 이 구성 요소를 기본 페이지에 묶을 것이기 때문에 y 값은 문자열 리터럴로 둘러싸여 있습니다. 이것이 React의 구성 요소가 앱 전체에서 서로 통신할 수 있는 방법입니다.
자, 이제 쇼타임!
6단계: ScrollBtn 구성 요소를 기본 파일/페이지로 가져오기
이 경우 기본 파일이 있는 src 디렉토리 내에 "Components"디렉토리를 미리 만들었습니다.
import ScrollBtn from './Components/ScrollBtn';
물론 이 페이지에 다른 애니메이션을 사용하지 않는 한 gsap을 다시 가져올 필요가 없습니다.
7단계: 대상 섹션의 ID를 확인하십시오.
섹션 ID가 "섹션-1"이라고 가정해 보겠습니다. 이것이 ScrollBtn을 이 페이지에 연결하는 방법입니다.
y: ${props.target}을 기억하십니까?
작동 방식은 다음과 같습니다.
<ScrollBtn target="#section-1" />
(...)
<div id="section-1">...</div>
id를 타겟팅하기 때문에 "#"을 추가했습니다.
모든 것이 잘되면 버튼이 어디에 있든 "#section-1"이 있는 곳까지 아래로 또는 위로 스크롤됩니다.
다음은 CodeSandbox의 작업 예입니다.
이 튜토리얼이 도움이 되었기를 바랍니다!
이 게시물을 소셜 미디어에 공유하여 그랬는지 알려주세요!
저를 태그하는 것을 잊지 마세요: !
Reference
이 문제에 관하여(React에서 GSAP 애니메이션을 트리거하는 재사용 가능한 버튼을 만드는 방법!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cat/how-to-create-reusable-buttons-to-trigger-gsap-animations-in-react-549l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)