css
CSS - keyframes 애니메이션
동적인 애니메이션은 자바스크립트를 사용하지 않고 CSS 와 HTML 만으로 구현할 수 있습니다. 형식은 다음과 같습니다.
여기서 @keyframes 의 이름과 선택자의 animation-name 의 이름이 동일해야 합니다.
5초의 시간에서 30% 경과시 빨강에서 노랑으로 변하고, 60% 경과했을 때 다시 핑크로 변합니다. 마지막으로 100% 되었을 때 파랑으로 변하는 애니메이션입니다.
@keyframes 이름 {
시간 비율 { 내용 }
시간 비율 { 내용 }
...
}
선택자 {
animation-name: @keyframes 이름
animation-duration: 시간. Ex.) 1s 1초
animation-iteration-count: 반복횟수 | infinite 중 하나
}
여기서 @keyframes 의 이름과 선택자의 animation-name 의 이름이 동일해야 합니다.
속 성 | 설 명 |
---|---|
@keyframes | 애니메이션 코드를 지정
|
animation-delay | 애니메이션을 시작하기 전 대기시간을 지정 초(s) | 밀리 초(ms) 중 하 |
animation-direction | 애니메이션을 앞으로 재생할지 역방향으로 재생할지 지정. (또는 다시 처음부터 시작할지 역방향으로 진행할지 결정)
|
animation-duration | 애니메이션이 완료되는 데 걸리는 시간. 초(s) | 밀리 초(ms) 중 하나 |
animation-fill-mode | 애니메이션 대기(혹은 종료)할 때 요소의 스타일을 지정.
|
animation-iteration-count | 애니메이션 재생 횟수 횟수 | infinite 중 하나. infinite 이면 무한 반복 |
animation-name | @keyframes 이름 |
animation-play-state | 애니메이션을 잠시 멈출지 아니면 다시 시작할지를 지정
|
animation-timing-function | 애니메이션의 속도를 지정
|
animation | 위 속성을 한꺼번에 지정. Ex.) animation: keyframe_name 5s infinite; |
<style>
#box{
width: 100%;
height: 100px;
font-size: 100%;
background-color: yellow;
animation-name: user-animation01;
animation-duration: 3s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
@keyframes user-animation01 {
to {background-color: pink; font-size: 500%}
}
</style>
<div id="box">안녕 하보니</div>
안녕 하보니
5초의 시간에서 30% 경과시 빨강에서 노랑으로 변하고, 60% 경과했을 때 다시 핑크로 변합니다. 마지막으로 100% 되었을 때 파랑으로 변하는 애니메이션입니다.
<style>
#box span{
animation-name: user-animation02;
animation-duration: 5s;
animation-iteration-count: infinite;
}
@keyframes user-animation02 {
0% {color: red}
30% {color: yellow}
60% {color: pink}
100% {color: blue}
}
</style>
<h2 id="box"><span>안녕</span> 하보니</h2>
0 댓글