HTML, CSS

(CSS) @keyframe과 animation 사용 방법 정리

Znero 2024. 5. 1. 19:45

 

 

이전에 transition 사용 방법에 대해서 포스팅을 했다.

 

하지만 transition만으로는 복잡한 애니메이션을 만들기 어렵다. 

 

이때 animation과 @keyframes을 사용하면 더 다양하고 복잡한 애니메이션을 만들 수 있다.

 

 

(CSS) transition 사용 방법 정리

css를 적용하다 보면 특정 요소가 변화하게 만들어야 할 때가 있다. 근데 그냥 변화시키면 상당히 부자연스럽다. 한 상태에서 다른 상태로 바로 한 번에 변화해 버리기 때문이다. 이때 변화를 자

lemu-devblog.tistory.com

 

 

transition , animation, @keyframe 차이

설명하기 앞서 transition,  animation, @keyframe의 차이를 확실하게 정리하고자 한다. (꽤나 헷갈리기 때문이다.)

 

위에서 언급했듯이 transition은 단순한 변화를 애니메이션화할 때 사용되고,

 

animation은 더 복잡한 애니메이션을 만들 때 사용되며,

 

이 복잡한 애니메이션을 정의할때 @keyframes를 사용한다. 

 

 

 

@keyframe 사용법

@keyframes은 각 애니메이션의 프레임을 정의할 수 있다.

 

프레임을 정의할 수 있는 방법은 두 가지다. 

 

각각은 아래와 같이 사용한다. 

 

1. 프레임이 두 개 일 때 :  from, to

2. 프레임이 두개 이상일 때 : 0%~100%

@keyframes beat {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.5);
  }
}
@keyframes beat {
  0% {
    transform: scale(1);
  }
  25% {
    transform: scale(1.5);
  }
  50% {
  	transform: scale(2);
  }
  75% {
  	transform: scale(1.5);
  }
  100% {
  	transform: scale(1);
  }
}

 

 

 

 

animation 사용법

@keyframe을 정의한 뒤에 적용하려면 animation을 사용해야 한다.

이때 애니메이션을 적용하고자 하는 요소에 animation 키워드를 추가하면 된다.

 

animation 키워드 사용법은 transition과 같다.

 

다만 맨 앞에 property대신 keyframe 이름이 들어간다는 것이 다르다.

 

.circle {
  width: 100px;
  height: 100px;
  background-color: skyblue;
  animation: moveAndChangeColor 5s ease-in-out infinite;
}

 

 

 

animation, @keyframe 사용 예시

 

See the Pen animation by 김다영 (@xnpzlttb-the-solid) on CodePen.