[CSS] CSS3에 등장한 신조어 ‘animation’
작성:    
업데이트:
카테고리: CSS basic
태그: CSS, FE Language, 모두의HTML5&CSS3
animation- 속성
- GIF나 플래시처럼 웹 사이트에 애니메이션 효과 적용시 사용
- 크기, 위치, 회전, 배경색 등 CSS 언어가 제공하는 대부분의 속성에 시간과 방향을 지정하여 애니메이션 효과 생성
*html 파일
<!DOCTYPE html>
<html lang="ko">
<head>
<title>animation 속성</title>
<link ref="stylesheet" href="CSS문서명.css" />
</head>
<body>
<div id="animation"></div>
</body>
</html>
*css파일 #transition {
width: 300px;
height: 300px;
background-color: yellow;
animation-name: changeWidth;
animation-duration: 3s;
animation-iteration-count: 6;
animation-timing-function: ease;
animation-direction: alternate;
animation-delay: 2s;
}
/* @keyframes 옆에는 animation-name 속성의 속성값 입력 */
@keyframes changeWidth {
from {
width: 300px;
}
to {
width: 600px;
}
}
가. animation-name
- 적용할 애니메이션 이름 지정
나. animation-duration
- 애니메이션이 from~to로 동작하는 데 걸리는 시간
다. animation-iteration-count
- 애니메이션 재생 횟수
- 제한 없이 무한으로 적용하고 싶다면 infinite 속성값 적용
라. animation-timing-function
- 속도를 어떻게 가속시키고 감속시킬지 설정
- transition-timing-function 과 같다.
마. animation-direction
애니메이션의 진행 방향
- normal : from -> to
- reverse : to -> from
- alternate : from -> to -> from
- alternate-reverse : to -> from -> to
바. animation-delay
- 애니메이션이 동작하는 시간을 지연시킬 때 사용
- 기본값은 0s
사. @keyframes 속성
- 애니메이션이 효과를 지정하는 공간
- from { }와 to { } 키워드는 애니메이션의 시작과 끝 지점
- 0% 와 100%를 입력할 수도 있음
@keyframes changeWidth {
0% {
width: 300px;
}
100% {
width: 600px;
}
}
- 효과를 세밀하게 조정하고 싶다면 0%와 100% 사이에 숫자를 추가
@keyframes changeWidth {
0% {
width: 300px;
}
50% {
background-color: red;
}
100% {
width: 600px;
}
}
- 즉, 애니메이션이 진행되는 50% 지점에서 배경색이 노란색에서 빨간색으로 변화
+ 한 줄로 할 때에는?
*css파일 #transition {
width: 300px;
height: 300px;
background-color: yellow;
animation-name: changeWidth;
animation-duration: 3s;
animation-iteration-count: 6;
animation-timing-function: ease;
animation-direction: alternate;
animation-delay: 2s;
}
/* @keyframes 옆에는 animation-name 속성의 속성값 입력 */
@keyframes changeWidth {
from {
width: 300px;
}
to {
width: 600px;
}
}
위의 animation 표현은 아래 표현처럼 한 줄로 표현할 수 있다.
*css파일 #transition {
width: 300px;
height: 300px;
background-color: yellow;
animation: changeWidth 3s 6 ease alternate 2s;
}
먼저 나오는 숫자(3s)는 duration, 나중에 나오는 숫자(2s)는 delay를 의미
댓글남기기