본문 바로가기
React

animation(CSSTransition)

by 루에 2021. 11. 4.
반응형

css의 transition 속성을 이용하여 css를 천천히 변하도록 한다.

 

아래 모듈 설치한다.

yarn add react-transition-group

 

필요한 속성을 임포트한다.

import { CSSTransition } from 'react-transition-group';

 

애니메이션을 적용하고자 하는 컴포넌트를 아래처럼 감싼다.

각 파라미터의 의미는

in => 발동 조건(true or false)

classNames => 애니메이션을 위한 css의 접두어

timeout => 최대 길이. timeout이 css에 설정된 transition값보다 작을 경우, timeout 시간이 지나면 자동으로 css 적용이 완료된다.

<CSSTransition in={onSwitch} classNames="wow" timeout={500}>
	<TabContent selectTab={selectTab} setOnSwitch={setOnSwitch}/>
</CSSTransition>

적용을 위한 css는 아래처럼 작성한다. classNames를 wow로 해놨기 때문에 css 작성의 접두어는 wow로 만들어야 하며, 이름규칙은 결정되어 있는대로 따른다. 가령 아래처럼 지정하면 wow-enter는 자동으로 애니메이션 시작시 적용되고 wow-enter-active는 실제 동작할 때 적용된다. 두가지 외에도 여러가지 많으니 css transition 을 따로 공부하자.

// 애니메이션 시작점
.wow-enter {
    opacity: 0;
}
// 애니메이션 동작할 때
.wow-enter-active {
    opacity: 1;
    transition: all 500ms;	// 이 옵션을 설정하지 않으면 애니메이션 X
}

 

반응형

댓글