CSS - Transition, Animation


Transition

전환 시 자연스럽게(스르륵)

  • syntax
transition : property duration [timing-function] [delay]

[] 안에 있는 요소 생략 가능

ex)
transition: font-size 2500ms;
transition: background-color 2500ms cubic-bezier(.02,1,.96,.03) 1000ms;

- all 모든 요소(font-size, background-color etc) 적용
transition: all 2500ms;

- 각각 적용하기
transition: background-color 2500ms cubic-bezier(.02,1,.96,.03) 1000ms, font-size 1500ms cubic-bezier(.42,3,.77,.10) 2000ms;

property (속성)

duration (지속 시간)

  • 단위 ms(1/1000초), s(초)

timing-function(전환의 속도)

생략 가능

  • ease-in : 천천히 바뀌다 확 바뀜
  • ease-out : 확 바뀌다가 천천히 바뀜
  • ease-in-out :
  • cubic-bezier() : 변화의 속도 제어 (곡선) https://cubic-bezier.com/

delay(전환 시작 지연)

  • 단위 ms(1/1000초), s(초)

1초 후에 변화 시작

transition: background-color 2500ms cubic-bezier(.02,1,.96,.03) 1000ms;

Animation

Transition 보다 자유도가 높다. (적용 하고 싶을 때 적용 가능)

animation-property

  • animation-name : 이름 자유롭게 설정 가능

  • animation-duration (지속 시간) : 단위 ms(1/1000초), s(초)

  • animation-timing-function: ease-in: 천천히 바뀌다 확 바뀜 / ease-out : 확 바뀌다가 천천히 바뀜 / ease-in-out / cubic-bezier() : 변화의 속도 제어 (곡선)

  • animation-delay: 단위 ms(1/1000초), s(초)

  • animation-iteration-count: 반복. 숫자 또는 infinite

  • animation-direction: 방향. reverse(반대 방향 ex:to에서 from). alternate(방향 번갈아 가면서)

ex1) from에서 to로 변경
@keyframes name {
  from {
    <!-- rules -->
  }

  to {
    <!-- rules -->
  }
}

ex2) 0%~100%로 변경 (좀 더 디테일하게 변경 가능)
@keyframes name {
  0% {
    <!-- rules -->
  }

  50% {
    <!-- rules -->
  }

  100% {
    <!-- rules -->
  }
}

.ex1{
  animation-name: name;
  animation-duration: 2000ms;
  animation-timing-function: ease-in;
  animation-delay: 1000ms;
  iteration-count: 5;
}

CSS 정보 더 찾아보기 https://developer.mozilla.org/en-US/




© 2020.11. by creamer

Powered by CREAMer