CSS를 이용한 애니메이션 다루기 updated_at: 2024-12-16 03:52

Css를 이용한 애니메이션 다루기

  • 1 animation
  • 2 @keyframes
  • 3 animation-duration
  • 4 animation-timing-function
  • 5 animation-delay
  • 6 animation-direction
  • 7 animation-fill-mode
  • 8 animation-play-state

기본 설명

@keyframes

어떤 모양에서 어떤 모양으로 바꿀지 정합니다. 이름은 big으로 지었고, 20px 정사각형에서 200px 정사각형으로 커집니다.

@keyframes name {
  0% { ... }
  n% { ... }
  100% { ... }
}

animation-name

어떤 @keyframes을 사용할지 정합니다. 예제에서는 big을 사용합니다.

animation-duration

animation-duration: time | 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;

애니메이션 진행 속도를 정합니다. 예제에서는 등속으로 진행합니다.

animation-delay

animation-delay: time | initial | inherit

애니메이션을 시작하기 전에 대기하는 시간을 정합니다. 예제에서는 2초 대기 후 시작합니다.

animation-iteration-count

애니메이션 반복 횟수를 정합니다. 예제에서는 4회 반복합니다.

animation-direction

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

애니메이션 진행 방향입니다. 예제에서는 정방향 → 역방향 → 정방향 → 역방향 → …으로 진행하도록 정했습니다.

animation-fill-mode

animation-fill-mode: none | forwards | backwards | both | initial | inherit;

애니메이션을 마친 후 어떤 상태로 만들지 정합니다.

animation-play-state

animation-play-state: running | paused | initial | inherit;

애니메이션을 진행할지 멈출지 정합니다. 예제에서는 진행하는 것으로 설정했습니다.

여기의 예제는 https://developer.mozilla.org/ko/docs/Web/CSS/CSS_animations/Using_CSS_animations 에서 좀더 자세히 보실 수 있습니다.

간단한 애니메이션 예제

@keyframes 을 이용한 애니메이션 실행

  • css
p {
  animation-duration: 3s;
  animation-name: slidein;
}

@keyframes slidein {
  from {
    margin-left: 100%;
    width: 300%;
  }

  to {
    margin-left: 0%;
    width: 100%;
  }
}
  • p tag를 3초동안 slidein 으로 정의된 @keyframes 을 실행한다.
  • @keyframes 에는 from 에서 시작하여 to 까지 3초동안 움직인다.

See the Pen css 를 이용한 애니메이션 다루기 by YoungHyeong Ryu (@YoungHyeong-Ryu) on CodePen.

중간 상태 추가

  • css
75% {
    font-size: 300%;
    margin-left: 25%;
    width: 150%;
  }
  • from 에서 시작하여 75% 까지 올때까지 폰트를 키우다가 다시 to 까지 변경됩니다.

See the Pen css 를 이용한 애니메이션 다루기 by YoungHyeong Ryu (@YoungHyeong-Ryu) on CodePen.

애니메이션 반복하기

p {
  animation-duration: 3s;
  animation-name: slidein;
  animation-iteration-count: infinite;
}
  • animation-iteration-count: infinite; 를 추가하여 무한으로 움직이게 하기

See the Pen css 를 이용한 애니메이션 다루기3 by YoungHyeong Ryu (@YoungHyeong-Ryu) on CodePen.

앞뒤로 움직이기

p {
  animation-duration: 3s;
  animation-name: slidein;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

javascript를 활용한 간단한 모션

사용자가 액션을 취할때 특정 애니메이션이 실행되도록 한 예제입니다.
on, off class를 이용하여 처리하였습니다.

See the Pen css 를 이용한 애니메이션 다루기4 by YoungHyeong Ryu (@YoungHyeong-Ryu) on CodePen.

한줄표기

아래와 같이 한줄표기도 가능하다.

[name duration timing-function delay iteration-count direction fill-mode play-state]
animation: slidein 3s linear 2s;
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글