애니메이션은 애니메이션을 나타내는 css스타일과 애니메이션의 중간 상태를 나타내는 키프레임들로 구성되어 있다.
애니메이션은 트랜지션보다 더 규모가 크고 복잡하며 다양한 효과를 가지고 있기 때문에 좀 더 정밀한 구현이 가능하다.
자바스크립트에 비해서 간단하게 구현할 수 있다.
css 애니메이션은 최대한 부드럽게 렌더링 된다.
애니메이션의 성능을 효율적으로 최적화 할 수 있다.
name은 @keyfrmaes속성에서 설정한 애니메이션의 이름이다. 이름을 설정해야 애니메이션을 재생할 수 있다.
name에 사용할 수 없는 이름들이 있는데 숫자로 시작되는 이름과 특수문자로 시작되는 이름은 사용 할 수 없다.
duration의 속성값의 단위는 초(s),밀리 초 (ms)단위를 사용 할 수 있다.
duration의 속성값에는 0이나 -2와 같은 음수의 값을 넣으면 애니메이션이 실행되지 않는다.
delay의 속성값은 0, now, 초와 밀리초단위 를 사용할 수 있다.
0과 now의 값은 똑같이 애니메이션이 바로 시작된다.
음수값의 속성값을 지정하면 애니메이션이 바로 시작되지만 음수값만큼의 시간이 지난 뒤의 순간부터 애니메이션이 시작된다.
ex ) 값이 -3s이면 3초가 지난 애니메이션의 순간부터 바로 시작된다.
@keyframes에서 from -> to로 진행되는게 순방향이고 to -> from으로 진행되는게 역방향이다.
애니메이션이 역방향으로 진행될때는 animation-timing-function속성과 관련된 효과도 반대로 적용된다.
direction에 들어갈 수 있는 속성값은 다음과 같다.
속성값은 숫자와 infinite를 넣을 수 있다.
속성값에 들어가는 숫자가 소수면 해당 프레임까지만 진행된다. ex ) 1.3이면 1번 진행하고 전체의 10분의 3만큼 진행되고 멈춘다.
infinite는 무한히 계속된다.
속성값은 running 과 paused 가 있다.
running은 애니메이션을 재생하고 paused는 애니메이션을 정지시킨다.
transition에 있는 타이밍의 속성값과 같다. -> 트랜지션정리
애니메이션을 재생할 각 프레임의 스타일을 정의하는 것으로
from 속성이나 0% 속성에 설정한 스타일에서 출발해 to 속성이나 100% 속성에 설정한 스타일로 점차 바뀌면서 애니메이션이 재생된다.
키프레임은 애니메이션을 적용할 요소의 animation-name을 정의하고 그 키프레임 코드블럭에 재생할 프레임별 시간비율을 작성한다.
0% : 애니메이션의 시작 프레임이다.
100% : 애니메이션의 마지막 프레임이다.
from : 0%와 의미가 같다.
to : 100%와 의미가 같다.
0%와 100%의 사이에는 여러개의 중간값을 설정해 프레임을 작성할 수 있습니다.
transition 속성과 animation 속성은 플래시의 기술이나 자바스크립트의 도움 없이 요소에 직접 애니메이션 효과를 적용하는 속성이다.
transition 속성은 요소의 상태가 변해야 애니메이션을 실행한다.
animation 속성은 요소의 모양과 동작을 키프레임 단위로 변경할 수 있다. 키프레임 동작은 재생 횟수, 재생 방향등 여러 애니메이션 속성으로 제어할 수 있다.