최대 1 분 소요

animation

@keyframes 애니메이션 이름 {
from{
}
to {
}
}
사용하기
img {
animation : 애니메이션 이름 재생시간 옵션
}

무한으로 반복되게 하려면 뒤에 infinite를 붙여준다.

    <img src="https://prayer0420.github.io/assets/images/CA111.JPG" alt="" />
img {
  width: 500px;
  height: 500px;
  border: 5px solid black;
  border-radius: 50%;
  animation: animation 5s ease-in-out infinite;
}

@keyframes animation {
  from {
    transform: rotateY(0);
  }
  to {
    transform: rotateY(360deg) translateX(100px);
  }
}

  • 5초 동안 이미지가 y축으로 180도 돌아가면서 x축으로 100px 움직이고 다시 원래 자리로 돌아간다음 180도 돌아가고 100px 움직이는게 무한 반복됨.
  • translate이 이루어지고 다시 원래 자리에서 애니메이션이 시작되기 때문에 끊기는 느낌이 나서 어색함.
  • 180도 돌아가고 100px 움직였으면 그대로 애니메이션이 되돌려지게 해서 끊기지 않게 만들기

from, to를 쓰는 대신 스텝으로 애니메이션 만들기

@keyframes animation {
  0% {
    transform: rotateY(0);
  }
  50% {
    transform: rotateY(180deg) translateY(100px);
  }
  100% {
    transform: rotateY(0) translateY(0);
  }
}

  • 마지막 스텝에서는 애니메이션이 원래 자리로 돌아오게 해서 애니메이션 부드럽게 작동.
  • 0부터 100% 중 원하는 갯수만큼 스텝을 가질 수 있음.
  • property를 꼭 transform 안해도 되지만 일부 property 애니메이션 잘 안될 수도 있어서 transform을 추천.
  • 두개의 스텝만 가지고 싶다면 0%, 100%로 적지 않고 from, to 사용.
  • opacity: 0% 사용해서 이미지 안보였다가 보이게 하는거 흔하게 사용.

https://animista.net/ (CSS 에니메이션)

댓글남기기