본문 바로가기
Reference/CSS

animation 속성은 애니메이션과 관련된 속성을 일괄적으로 설정합니다.

by @webstoryboy 2022. 11. 4.

animation 속성은 애니메이션과 관련된 속성을 일괄적으로 설정합니다.

Reference/CSS

animation 속성은 애니메이션과 관련된 속성을 일괄적으로 설정합니다.

by @webs 2022. 11. 4.

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)

애니메이션 움직임 방향을 설정하는 예제입니다.

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;
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)

애니메이션 반복 횟수를 설정하는 예제입니다.

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
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);
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);
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 아이콘6 익스플로러7 아이콘7 익스플로러8 아이콘8 익스플로러9 아이콘9 익스플로러10 아이콘10 익스플로러11 아이콘11 엣지 아이콘 안드로이드 아이콘 ios 아이콘
animation
name
duration
timing-function
delay
iteration-count
direction
fill-mode
play-state

참고(Reference)


댓글