Reference/CSS
animation 속성은 애니메이션과 관련된 속성을 일괄적으로 설정합니다.
animation
animation 속성은 애니메이션과 관련된 속성을 일괄적으로 설정합니다. 애니메이션은 움직임 시간, 움직임 지연 시간, 움직임 방향, 움직임 속도, 움직임 진행상태, 움직임 반복 횟수, 움직임 진행상태, 움직임 속도, 키프레임 이름 등을 설정하여 원하는 애니메이션을 구현 할 수 있습니다.
특징 | 설명 |
---|---|
기본값 |
animation-name: none; animation-duration: 0s; animation-timing-function: ease; animation-delay: 0s; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: none; animation-play-state: running; |
적용 | animation |
버전 | CSS3 |
사용성 | ★★★★★ |
정의(Definition)
- animation 속성은 애니메이션과 관련된 속성을 일괄적으로 설정합니다.
애니메이션과 관련된 속성(Animation Related Properties)
- animation 속성은 애니메이션과 관련된 속성을 일괄적으로 설정합니다.
- animation-delay 속성은 애니메이션 지연 시간을 설정합니다.
- animation-direction 속성은 애니메이션 움직임 방향을 설정합니다.
- animation-duration 속성은 애니메이션 움직임 시간을 설정합니다.
- animation-fill-mode 속성은 애니메이션이 끝난 후의 상태를 설정합니다.
- animation-iteration-count 속성은 애니메이션 반복 횟수를 설정합니다.
- animation-name 속성은 애니메이션 keyframe 이름을 설정합니다.
- animation-play-state 속성은 애니메이션 진행상태를 설정합니다.
- animation-timing-function 속성은 애니메이션 움직임의 속도를 설정합니다.
문법(Syntax)
animation: @keyframes name | duration | timing-function | delay | iteration-count | direction | fill-mode | play-state;
/* @keyframes name | duration */
animation: move 3s;
/* @keyframes name | duration | delay */
animation: move 3s 1s;
/* @keyframes name | duration | delay | iteration-count */
animation: move 3s 1s 5;
/* @keyframes name | duration | delay | iteration-count | direction*/
animation: move 3s 1s 5 reverse;
속성(Property)
속성값 | 설명 |
---|---|
name | 애니메이션 keyframe 이름을 설정합니다. |
duration | 애니메이션 움직임 시간을 설정합니다. |
timing-function | 애니메이션 움직임 속도를 정의합니다. |
delay | 애니메이션이 로드된 후 애니메이션이 시작될 때 까지의 시간을 나타냅니다. |
iteration-count | 애니메이션 반복 횟수 설정합니다. |
direction | 애니메이션 움직임 방향을 설정합니다. |
fill-mode | 애니메이션이 끝난 후의 상태를 설정합니다. |
play-state | 애니메이션 진행상태를 설정합니다. |
예제1(Sample)
애니메이션을 속성을 일괄적으로 설정하는 예제입니다.
HTML
CSS
SCRIPT
<div class="animation-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
.animation-box.show1 .box:nth-child(1) {animation: move 2s;}
.animation-box.show1 .box:nth-child(2) {animation: move 2s;}
.animation-box.show1 .box:nth-child(3) {animation: move 2s;}
.animation-box.show2 .box:nth-child(1) {animation: move 2s 0.1s;}
.animation-box.show2 .box:nth-child(2) {animation: move 2s 0.2s;}
.animation-box.show2 .box:nth-child(3) {animation: move 2s 0.3s;}
.animation-box.show3 .box:nth-child(1) {animation: move 2s 0.2s;}
.animation-box.show3 .box:nth-child(2) {animation: move 2s 0.4s;}
.animation-box.show3 .box:nth-child(3) {animation: move 2s 0.6s;}
@keyframes move {
0% {left: 0%;}
50% {left: calc(100% - 80px);}
100% {left: 0%;}
}
//Javascript none
예제2(Sample)
애니메이션 지연 시간을 설정하는 예제입니다.
HTML
CSS
SCRIPT
<div class="animation-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
.animation-box.show1 .box:nth-child(1) {animation: move 2s;}
.animation-box.show1 .box:nth-child(2) {animation: move 2s;}
.animation-box.show1 .box:nth-child(3) {animation: move 2s;}
.animation-box.show2 .box:nth-child(1) {animation: move 2s 0.1s;}
.animation-box.show2 .box:nth-child(2) {animation: move 2s 0.2s;}
.animation-box.show2 .box:nth-child(3) {animation: move 2s 0.3s;}
.animation-box.show3 .box:nth-child(1) {animation: move 2s 0.2s;}
.animation-box.show3 .box:nth-child(2) {animation: move 2s 0.4s;}
.animation-box.show3 .box:nth-child(3) {animation: move 2s 0.6s;}
@keyframes move {
0% {left: 0%;}
50% {left: calc(100% - 80px);}
100% {left: 0%;}
}
//Javascript none
예제3(Sample)
애니메이션 움직임 방향을 설정하는 예제입니다.
animation-direction : normal
animation-direction : reverse
animation-direction : alternate
animation-direction : alternate-reverse
HTML
CSS
SCRIPT
<div class="animation-box">
<div class="box"></div>
</div>
.animation-box.show1 .box {animation: move 2s 2;}
.animation-box.show2 .box {animation: move 2s 2 reverse;}
.animation-box.show3 .box {animation: move 2s 2 alternate;}
.animation-box.show4 .box {animation: move 2s 2 alternate-reverse;}
@keyframes move {
0% {left: 0; top: 0;}
25% {left: calc(100% - 80px); top: 0;}
50% {left: calc(100% - 80px); top: calc(100% - 80px);}
75% {left: 0; top: calc(100% - 80px);}
100% {left: 0; top: 0;}
}
//Javascript none
예제4(Sample)
애니메이션이 끝난 후의 상태를 설정하는 예제입니다.
1번 적용 효과 : animation-fill-mode : none;
2번 적용 효과 : animation-fill-mode : forwards;
3번 적용 효과 : animation-fill-mode : backwards;
4번 적용 효과 : animation-fill-mode : both;
2번 적용 효과 : animation-fill-mode : forwards;
3번 적용 효과 : animation-fill-mode : backwards;
4번 적용 효과 : animation-fill-mode : both;
HTML
CSS
SCRIPT
<div class="animation-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
.animation-box.show .box:nth-child(1) {animation: move 2s 1 none;}
.animation-box.show .box:nth-child(2) {animation: move 2s 1 forwards;}
.animation-box.show .box:nth-child(3) {animation: move 2s 1 backwards;}
.animation-box.show .box:nth-child(4) {animation: move 2s 1 both;}
@keyframes move {
0% {left: 0%;}
100% {left: calc(100% - 80px);}
}
//Javascript none
예제5(Sample)
애니메이션 반복 횟수를 설정하는 예제입니다.
animation-iteration-count : 1;
animation-iteration-count : 2;
animation-iteration-count : 3;
animation-iteration-count : 4;
animation-iteration-count : infinite;
HTML
CSS
SCRIPT
<div class="animation-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
.animation-box.show1 .box {animation: move 2s 1;}
.animation-box.show2 .box {animation: move 2s 2;}
.animation-box.show3 .box {animation: move 2s 3;}
.animation-box.show4 .box {animation: move 2s 4;}
.animation-box.show5 .box {animation: move 2s infinite;}
@keyframes move {
0% {left: 0%;}
50% {left: calc(100% - 80px);}
100% {left: 0%;}
}
//Javascript none
예제6(Sample)
애니메이션 이름을 설정한 예제입니다.
HTML
CSS
SCRIPT
<div class="animation-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
.animation-box.show1 .box {animation: move1 2s 1;}
.animation-box.show2 .box {animation: move2 2s 1;}
.animation-box.show3 .box {animation: move3 2s 1;}
@keyframes move1 {
0% {left: 0%;}
50% {left: 10%;}
100% {left: 0%;}
}
@keyframes move2 {
0% {left: 0%;}
50% {left: 20%;}
100% {left: 0%;}
}
@keyframes move3 {
0% {left: 0%;}
50% {left: calc(100% - 80px);}
100% {left: 0%;}
}
//Javascript none
예제7(Sample)
애니메이션 진행상태를 설정한 예제입니다.
HTML
CSS
SCRIPT
<div class="animation-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
.animation-box.show .box {animation: move 2s infinite running;}
.animation-box .box {animation: move 2s infinite paused;}
@keyframes move {
0% {left: 0%;}
50% {left: calc(100% - 80px);}
100% {left: 0%;}
}
//Javascript none
예제8(Sample)
애니메이션 움직임의 속도를 키워드로 설정한 예제입니다.
1번 적용 효과 : animation-timing-function : linear
2번 적용 효과 : animation-timing-function : ease
3번 적용 효과 : animation-timing-function : ease-in
4번 적용 효과 : animation-timing-function : ease-out
5번 적용 효과 : animation-timing-function : ease-in-out
2번 적용 효과 : animation-timing-function : ease
3번 적용 효과 : animation-timing-function : ease-in
4번 적용 효과 : animation-timing-function : ease-out
5번 적용 효과 : animation-timing-function : ease-in-out
HTML
CSS
SCRIPT
<div class="animation-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
.animation-box.a1.show .box:nth-child(1) {animation: move 2s 1 linear;}
.animation-box.a1.show .box:nth-child(2) {animation: move 2s 1 ease;}
.animation-box.a1.show .box:nth-child(3) {animation: move 2s 1 ease-in;}
.animation-box.a1.show .box:nth-child(4) {animation: move 2s 1 ease-out;}
.animation-box.a1.show .box:nth-child(5) {animation: move 2s 1 ease-in-out;}
@keyframes move {
0% {left: 0%;}
50% {left: calc(100% - 80px);}
100% {left: 0%;}
}
//Javascript none
예제9(Sample)
애니메이션 움직임의 속도를 건너뛰기로 설정한 예제입니다.
1번 적용 효과 : animation-timing-function : step-start;
2번 적용 효과 : animation-timing-function : step-end;
3번 적용 효과 : animation-timing-function : steps(4, start);
4번 적용 효과 : animation-timing-function : steps(4, end);
5번 적용 효과 : animation-timing-function : steps(10, start);
6번 적용 효과 : animation-timing-function : steps(10, end);
2번 적용 효과 : animation-timing-function : step-end;
3번 적용 효과 : animation-timing-function : steps(4, start);
4번 적용 효과 : animation-timing-function : steps(4, end);
5번 적용 효과 : animation-timing-function : steps(10, start);
6번 적용 효과 : animation-timing-function : steps(10, end);
HTML
CSS
SCRIPT
<div class="animation-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
.animation-box.a2.show .box:nth-child(1) {animation: move 2s 1 step-start;}
.animation-box.a2.show .box:nth-child(2) {animation: move 2s 1 step-end;}
.animation-box.a2.show .box:nth-child(3) {animation: move 2s 1 steps(4, start);}
.animation-box.a2.show .box:nth-child(4) {animation: move 2s 1 steps(4, end);}
.animation-box.a2.show .box:nth-child(5) {animation: move 2s 1 steps(10, start);}
.animation-box.a2.show .box:nth-child(6) {animation: move 2s 1 steps(10, end);}
@keyframes move {
0% {left: 0%;}
50% {left: calc(100% - 80px);}
100% {left: 0%;}
}
//Javascript none
예제10(Sample)
애니메이션 움직임의 속도를 큐빅 베지어 곡선값으로 설정한 예제입니다.
1번 적용 효과 : animation-timing-function : cubic-bezier(0,0,0,0);
2번 적용 효과 : animation-timing-function : cubic-bezier(1,0,0,1);
3번 적용 효과 : animation-timing-function : cubic-bezier(1, 0.01, 0.07, 0.99);
4번 적용 효과 : animation-timing-function : cubic-bezier(0, 0.92, 1,-0.08);
5번 적용 효과 : animation-timing-function : cubic-bezier(0.76, 0.85, 1, 0.25);
2번 적용 효과 : animation-timing-function : cubic-bezier(1,0,0,1);
3번 적용 효과 : animation-timing-function : cubic-bezier(1, 0.01, 0.07, 0.99);
4번 적용 효과 : animation-timing-function : cubic-bezier(0, 0.92, 1,-0.08);
5번 적용 효과 : animation-timing-function : cubic-bezier(0.76, 0.85, 1, 0.25);
HTML
CSS
SCRIPT
<div class="animation-box">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
.animation-box.a3.show .box:nth-child(1) {animation: move 2s 1 cubic-bezier(0,0,0,0);}
.animation-box.a3.show .box:nth-child(2) {animation: move 2s 1 cubic-bezier(1,0,0,1);}
.animation-box.a3.show .box:nth-child(3) {animation: move 2s 1 cubic-bezier(1, 0.01, 0.07, 0.99);}
.animation-box.a3.show .box:nth-child(4) {animation: move 2s 1 cubic-bezier(0, 0.92, 1,-0.08);}
.animation-box.a3.show .box:nth-child(5) {animation: move 2s 1 cubic-bezier(0.76, 0.85, 1, 0.25);}
@keyframes move {
0% {left: 0%;}
50% {left: calc(100% - 80px);}
100% {left: 0%;}
}
//Javascript none
호환성(Compatibility)
6 | 7 | 8 | 9 | 10 | 11 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
animation | ○ | ○ | ○ | ○ | ○ | ❌ | ❌ | ❌ | ❌ | ○ | ○ | ○ | ○ | ○ |
name | ○ | ○ | ○ | ○ | ○ | ❌ | ❌ | ❌ | ❌ | ○ | ○ | ○ | ○ | ○ |
duration | ○ | ○ | ○ | ○ | ○ | ❌ | ❌ | ❌ | ❌ | ○ | ○ | ○ | ○ | ○ |
timing-function | ○ | ○ | ○ | ○ | ○ | ❌ | ❌ | ❌ | ❌ | ○ | ○ | ○ | ○ | ○ |
delay | ○ | ○ | ○ | ○ | ○ | ❌ | ❌ | ❌ | ❌ | ○ | ○ | ○ | ○ | ○ |
iteration-count | ○ | ○ | ○ | ○ | ○ | ❌ | ❌ | ❌ | ❌ | ○ | ○ | ○ | ○ | ○ |
direction | ○ | ○ | ○ | ○ | ○ | ❌ | ❌ | ❌ | ❌ | ○ | ○ | ○ | ○ | ○ |
fill-mode | ○ | ○ | ○ | ○ | ○ | ❌ | ❌ | ❌ | ❌ | ○ | ○ | ○ | ○ | ○ |
play-state | ○ | ○ | ○ | ○ | ○ | ❌ | ❌ | ❌ | ❌ | ○ | ○ | ○ | ○ | ○ |
댓글