FE (Front End) (구)/CSS

CSS 애니메이션

B_Tae 2022. 1. 29. 23:35

제 개인적인 정리이기 때문에 다소 설명이 모호할 수 있습니다.
또한 "html,css,자바스크립트 do it" 책에 내용이 다소 포함되어 있습니다.






animation(애니메이션)

애니메이션은 특정 지점에서 스타일을 바꾸는 방법이며 @keyframes 속성으로 정의하고 animation속성과 그 하위 속성으로 실행 시간이나 반복 여부 등을 결정한다.




@keyframes

기본형

@keyframes <이름> { <선택자> { <스타일>} } 

이다. 여기서 선택자는 스타일 속성값이 바뀌는 지점을 가르키고 %단위를 사용하여 나타낸다. 시작과 끝을 나타낼 수 있는 0% 와 100%는 각각 from과 to를 대신 사용한다.

animation-delay

트렌지션과 마찬가지로 초(s)나 밀리초(ms) 값을 이용해 시작 시간을 늦출 수 있다.

animation-direction

기본형

animation-direction: normal | reverse | alternate | alternate-reverse

방향을 지정하는 속성이며 다양한 속성 값을 가질 수 있다.

  • normal - from에서 to로 정방향으로 진행한다.(기본값)
  • reverse - to에서 from으로 반대 방향으로 진행한다.
  • alternate - 홀수 번째는 noraml , 짝수 번째는 reverse 값을 갖는다.
  • alternate-reverse - 홀수 번째는 reverse, 짝수 번째는 normal 값을 갖는다.

animation-duration

기본형

animation-duration : <시간>

사용할 수 있는 단위는 초(s)와 밀리초(ms)가 있으며 기본값이 0으로 지정되어 있어 따로 속성값을 정하지 않는다면 애니메이션은 실행되지 않는다.

animation-iteration-count

기본형

animation-iteration-count: <숫자> | infinite

반복 횟수를 입력 할 수 있으며 infinite 속성 값을 통해 무한 반복할 수 있다.

animation-name

기본형

animation-name : <키프레임 이름> | none

앞서 언급한 @keyframes 속성에 <이름> 값을 입력하여 지정 요소에 어떤 애니메이션을 추가할 지 지정한다.

animation-timing-function

트랜지션과 동일하게 시작, 중간, 끝에 속도를 지정하여 속도 곡선을 만들 수 있다. 속성 값은 트랜지션과 동일하다.

animation

앞선 모든 속성을 animation 속성 하나에 표기할 수 있다. 또한 하나의 요소에 2개 이상에 애니메이션을 실행할 때 쉼표(,)를 통해 지정할 수 있다.

예시 소스

@keyframes change {
    from {
        border: 1px solid rgba(0,0,0,0.1); 
         }
      to { 
        border: 1px solid #f00
        border-radius: 50%;
        }

.class {
    background-color: #4cffoo ;
    border: 1px solid rgba(0,0,0,0.1);
    animation-name: change;
    animation-duration: 3s;
    animation-iteraction-count: infinite;
    animation-direction: alternate; 

소스에 애니메이션 속성을
animation: change 3s infinite alternate;줄여 작성할 수 있다.