Transition vs Animation
Transition
- 속도, 타이밍 함수, 딜레이 등을 사용자 지정하여 CSS 속성을 변경할 때 애니메이션처럼 보이게 함
- 자동으로 작동하지 않음 (hover나 onclick 같은 이벤트에 의해 동작)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#delay1 {
position: relative;
transition-property: font-size;
transition-duration: 4s;
transition-delay: 2s;
font-size: 14px;
}
#delay1:hover {
transition-property: font-size;
transition-duration: 4s;
transition-delay: 2s;
font-size: 36px;
}
단축 문법
1
2
3
div {
transition: <property> <duration> <timing-function> <delay>;
}
Transition 완료 감지하기
1
el.addEventListener('transitionend', updateTransition, true)
Animation
@keyframes
규칙을 사용하여 애니메이션 구현- 속도, 타이밍 함수, 딜레이 사용자 지정 가능하며 중지, 중지 후 값, 반복 횟수 등도 지정 가능
- 자동으로 작동시킬 수 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
p {
animation-duration: 3s;
animation-name: slidein;
}
@keyframes slidein {
from {
margin-left: 100%;
width: 300%;
}
to {
margin-left: 0%;
width: 100%;
}
}
차이점
- Transition은 하나의 시작 상태에서 끝 상태로 변경하는 반면 Animation은 많은 중간 상태들로 구성 가능
- Transition은 이벤트가 발생해야 작동하지만 Animation은 바로 작동시킬 수 있다.
- Animation이 Transition 보다 더 많은 애니메이션 옵션을 설정할 수 있음
정리
- 단순한 애니메이션 효과를 주고 싶다면 Transition을 사용하는 것이 효율적이다.
- 복잡한 애니메이션을 구현하거나 페이지가 로드될 때 애니메이션을 실행해야 할 때는 Animation을 사용한다.
참고사이트
Transitions vs Animations
[CSS] 트랜지션(Transition)과 애니메이션(Animation)
CSS 트랜지션 사용하기
CSS 애니메이션 사용하기
This post is licensed under CC BY 4.0 by the author.