CSS 애니메이션 Animation, Keyframes 사용하기

CSS 애니메이션이란 각 요소들을 CSS만으로 스타일을 다른 스타일로 부드러운 전환을 시켜주는 걸 말합니다. 애니메이션(Animation)키프레임들(Keyframes)로 구성이 되어집니다. 자바스크립트 없이 CSS만으로도 부드러운 전환을 시킬수 있는게 애니메이션의 장점입니다. 다만 분명한 한계는 있습니다.

 

css-animation-애니메이션

Animation 속성

animation: name duration timing-function delay iteration-count direction fill-mode;

animation 속성입니다. 이 각각의 속성들은 단일 속성으로도 사용이 가능합니다. 

 

animation-name: 동작할 애니메이션(keyframes)
animation-duration: 애니메이션 지속 시간;
animation-timing-function: 지속 시간의 흐르는 속도(ex)ease-in-out);
animation-delay: 애니메이션 시작까지의 딜레이;
animation-iteration-count: 애니메이션 반복 횟수 (infinite으로 루프 가능);
animation-direction: 종료 후 처음 부터 시작할지, 반대로 진행할지 설정 ;
animation-fill-mode: 애니메이션 실행 전과 후에 스타일 지정 (ex)forwards 애니메이션 후 상태로 스타일 지속;

Animation 사용하기

0

@keyframes hideSplashScreenIcon {
  0% {
    transform: none;
  }

  25% {
    transform: scale(2);
  }

  50% {
    transform: scale(1.7);
  }

  75% {
    transform: scale(2.1);
  }

  100% {
    transform: none;
  }
}

#splash-screen i {
  animation: hideSplashScreenIcon 1.9s ease-in-out;
}

@keyframes는 요소가 어떻게 동작을 할 지를 만들어줍니다. hideSplashScreenIcon은 애니메이션 이름 속성에 들어갑니다. 해당 애니메이션의 경우 0%, 25%, 50%, 75%, 100% 이렇게 나눠줬지만 해당 섹션은 설정하기 나름이라 제한은 없습니다. 애니메이션 속성값은 이름과 지속시간과 타임 함수 설정입니다.

 

애니메이션을 지정하는거 자체는 그리 어렵지는 않으나 애니메이션을 맛깔나게 만드는 작업이 더 어렵다고 생각됩니다. 하지만 CSS 애니메이션은 이미 맛깔나게 만들어놓은 것들이 많기 때문에 코드를 가져다 쓰시면됩니다.

 

0

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

animation: fadeOut 0.3s linear forwards;

단순한 키프레임의 경우에는 from, to 시작과 끝 지점만 지정할 수 도 있습니다. forwards 설정을 할경우 키프레임의 끝인 opacitiy: 0 속성을 유지할 수 있게 됩니다.

 

@keyframes notificationAnimation {
  0% {
    transform: none;
  }

  50% {
    transform: translateY(-10px) rotatey(360deg);
  }

  100% {
    transform: none;
  }
}

@keyframes flip-horizontal-bottom {
  0% {
    transform: rotateX(0);
  }
  100% {
    transform: rotateX(360deg);
    opacity: 1;
  }
}

@keyframes scale-up-center {
  0% {
    transform: scale(0.5);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes slide-fwd-center {
  0% {
    transform: translateZ(0);
  }
  100% {
    transform: translateZ(160px);
  }
}

@keyframes slide-top {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }

  100% {
    transform: translateY(0px);
  }
}

 

 

Animista

Animista is a place where you can play with a collection of ready to use CSS animations, tweak them and download only those you will actually use.

animista.net

 

0

해당 사이트에 들어가게 되면 다양하게 활용할 수 있는데 CSS Animation들이 있습니다. 위의 키프레임들도 Animista에서 가져온 것들인데요. 예시 코드들이 있어서 간단하게 활용하기가 좋습니다.

 

 

간단한 CSS 애니메이션 사용하기였는데요. HTML과 CSS의 경우에는 직접 해보는게 역시 가장 좋은 거 같습니다. 다양한 태그와 스타일을 모두 외울 수 없기 때문에 자주 사용되지 않는 것들은 그때그때 찾아보게 되네요.

 

 

CSS: Cascading Style Sheets | MDN

자습서 CSS 소개 선택자, 속성, 규칙 작성, HTML에 CSS 적용하기, 길이와 색 등 단위 지정하기, 종속과 상속, 박스 모델, 디버깅 등 CSS의 작동 원리와 기본을 배웁니다. 텍스트 꾸미기 글꼴, 굵기, 기

developer.mozilla.org

 

그리드형(광고전용)

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band

댓글

Designed by JB FACTORY