모달창이 닫힐 때 에니메이션을 주기 위해 우선 모달창을 제어하는 state를 제외하고 에니메이션을 제어 할 state를 하나 더 만들어주었다.
const [animationOn, setAnimationOn] = useState<boolean>(false)
이후 닫기 버튼 클릭 시 animationOn을 true로 바꿔주고,
setTimeout을 사용하여 0.5초 후 animationOn과 modalOpen을 false로 바꿔주면 된다.
setAnimationOn(true)
setTimeout(() => {
setAnimationOn(false)
setModalOpen(false)
}, 500)
animationOn이 true로 설정되어 있을 때, 아래와 같이 에니메이션 css를 적용해주어 효과를 입힐 수 있었다.ㅁ
${(props) =>
props.animationOn === true &&
css`
transition: 0.25s all ease-in;
transform: translateX(-450px);
`}
'React.js' 카테고리의 다른 글
[React] Window & typeof globalThis' 형식에 'apple' 속성이 없습니다 ERR (1) | 2022.08.22 |
---|---|
[React] useQuery Hook이 반환하는 데이터 타입에 undefined가 포함되어있는 이슈 (0) | 2022.08.05 |
[React] 모달 영역 외부 클릭시 모달 닫기 (0) | 2022.07.05 |
[React] React-router-dom v6 params 사용 및 뒤로가기 (0) | 2022.06.28 |
[React] html 태그가 적용된 상태로 텍스트 나타내기 (0) | 2022.06.08 |