본문 바로가기
  • 개발 / 공부 / 일상
HTML&CSS

(CSS) animation

by JJeongHyun 2023. 1. 11.
반응형

animation

  • 요소에 적용되는 CSS 스타일을 다른 CSS 스타일로 부드럽게 전환시켜 줄 수 있다
  • CSS에서 애니메이션 속성으로 동적인 효과를 줄 수 있다
  • 애니메이션의 상태를 나타내는 키프레임들로 구성
    • @keyframes
      @keyframes name {
         0% {...}
         n% {...}
      100% {...}
      } → name: 애니메이션 이름 설정
      0% : 시작할 때의 모양을 설정. from으로 사용해도 가능
      n% : n% 일 때의 모양을 설정
      100% : 끝날 때의 모양을 설정. to로 사용해도 가능
  • 트랜지션 효과 보다 훨씬 더 규모가 크고 복잡하지만 다양한 효과를 적용해서 좀 더 정밀하고 원하는 CSS효과를 줄 수 있다
  • JS를 모르더라도 간단하게 애니메이션을 구상할 수 있다
  • JS를 이용한 애니메이션이 아니라 CSS 애니메이션으로 여러 기술을 이용하여 최대한 부드럽게 랜더링 할 수 있다
  • 브라우저에서 애니메이션의 성능을 효율적으로 최적화가 가능하다
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      @keyframes big {
        from {
          width: 20px;
          height: 20px;
        }
        to {
          width: 200px;
          height: 200px;
        }
      }
      #jb {
        margin: 30px auto;
        width: 20px;
        height: 20px;
        background-color: orange;
        animation-name: big;
        animation-duration: 2s;
        animation-timing-function: linear;
        animation-delay: 2s;
        animation-iteration-count: 4;
        animation-direction: alternate;
        animation-fill-mode: none;
        animation-play-state: running;
      }
    </style>
  </head>
  <body>
    <div id="jb"></div>
  </body>
</html>

 

animation-name

  • 어떤 @keyframes을 사용할지 설정한다.
  • 예제에서는 big을 사용한다.

animation-duration

  • animation-duration : time | initial | inherit
  • time : 시간을 설정. 기본값은 0. 단위는 s(초) 또는 ms(1000분의 1초)를 사용.
  • initial : 기본값으로 설정
  • inherit : 부모의 요소의 속성값을 상속 받게 설정.
    • 애니메이션이 지속되는 총 시간을 설정한다.
    • 예제에서는 2초 동안 애니메이션을 시작하고 끝을 낸다.

animation-timing-function

  •  animation-timing-function : linear | ease | ease-in | ease-out | ease-in-out | step-start | step-end | steps(int, start|end) | cubic-bezier(n, n, n, n) | initial | inherit
    기본값은 ease.
    • 애니메이션 진행 속도를 설정한다.
    • 예제에서는 등속도로 진행하게 설정

 

animation-delay

  • 애니메이션을 시작하기 전에 대기하는 시간을 설정
  • 예제에서는 2초 대기 후 시작하도록 설정

animation-iteration-count

  • 애니메이션 반복 횟수를 설정
  • 예제에서는 4회 반복

animation-direction

  • animation-direction : normal | reverse | alternate | alternate-reverse | initial | inherit
    • normal : 기본값. 정해진 순서로 진행하기로 설정
    • reverse : 반대 순서로 설정
    • alternate : 정해진 순서로 진행했다가 반대 순서로 설정
    • alternate-reverse : 반대 순서로 진행했다가 정해진 순서로 설정.
    • initial : 기본값으로 설정
    • inherit : 부모 요소의 속성값으로 상속 받게 설정.
  • 애니메이션 진행 방향을 설정 한다.
  • 예제에서는 정방향 → 역방향 → 정방향 → 역방향 → … 으로 진행하도록 설정

 

animation-fill-mode

  • animation-fill-mode : none | forwards | backwards | both | initial | inherit
    기본값은 none
    • 애니메이션을 마친 후 어떤 상태로 만들지 설정한다.

animation-play-state

  • animation-play-state : running | paused | initial | inherit
    • running : 애니메이션을 진행하기로 설정. 기본값이다.
    • paused : 애니메이션을 진행하지 않게 설정.
    • initial : 기본값으로 설정
    • inherit : 부모 요소의 속성값을 상속받기로 설정
  • 애니메이션을 진행할지 멈출지 설정한다.
  • 예제에서는 진행하는 것으로 설정

 

→ 축약형으로 설정 가능

위 예제를 설정한다고 가정한다면

> animation : big 2s linear 2s 4 alternate none running
> animation : name / duration / timing-function / delay / iteration-count / direction / fill-mode / play-state

'HTML&CSS' 카테고리의 다른 글

(CSS) pseudo  (0) 2023.01.11
(CSS) position  (0) 2023.01.11
(CSS) display  (0) 2023.01.11
(CSS) 선택자  (0) 2023.01.11
(CSS) CSS & Link태그  (0) 2023.01.11