본문 바로가기
언어/HTML & CSS

[입문] HTML CSS - transition (전환), 애니메이션 anmaition

by 저여저 2024. 1. 16.

< transition >  : 시간을 이용해서 A>B 로 동작 가능하다.

1. transition-property : 무엇을 all; margin-right; color; 

2. transition-duration : time시간 자료형 ( 2s; 500ms;   ex,0.5s=500ms 같다.)

.box {
  width: 300px;
  height: 80px;
  border: 2px dashed green;
  font-size: 30px;
  background-color: aqua;
  color: white;
  text-align: center;

  transition-property: all;
  transition-duration: 1s;
}

.box:hover {
  background-color: indianred;
  color: black;
  font-size: 50px;
}

3. transition-delay : ~초 뒤에 변화시작 ! 요소가 여러개이면 도미노처럼 적용된다.

4. transition-timing-function : A > B 로 변할 때 중간 과정의 시간을 조절함. 빠르게 ? 천천히 ? 

ㅡ ease; 기본값 ,   ease-in; 천천보통 ,  ease-iut; ,보통천천?,   ease-in-out; 중간이 빠름,   linear; 속도일정.

 

5. transition (shorthand) :  순서 중요함, 맨앞  property +시간은 앞쪽이 duration + 뒤쪽이 delay이다.

  transition: all 3s ease-in 1s;

6. transition + transform 활용하기

.box {
  width: 100px;
  height: 100px;
  border: 10px solid palevioletred;
  border-radius: 30px;
  background-color: lightskyblue;
  text-align: center;
  line-height: 100px;

  transition: all 1s ease-in-out;
  transform-origin: bottom right;
}

.box:hover {
  transform: rotate(360deg) translatey(30px);
}

 


< anmaition > : 다수의 스타일을 자동으로 동작하게 한다.

1. @keyframes : 애니메이션의 세트를 미리 만들어야 한다.  

ㅡ from-to 또는 %로 세분화 할 수 있다.

2. animation-name : @keyframes의 이름을 가지고 온다.

ㅡ 대소문자 구분, 숫자, _ , -  가능

3. animation-duration : time자료형 시간  , 한 사이클을 완료하는데 걸리는 시간. ( s , ms ,  1s =1000ms ), 양수

.box {
  width: 100px;
  height: 100px;
  border: 10px solid palevioletred;
  border-radius: 30px;
  background-color: lightskyblue;
  text-align: center;
  line-height: 100px;
}

.box:hover {
  animation: back-color 5s infinite alternate;
}

@keyframes move {
  frome {
    width: 100px;
  }
  to {
    width: 300px;
  }
}
@keyframes remote {
  0% {
  }
  50% {
    width: 300px;
  }
  100% {
  }
}

@keyframes first-ani {
  50% {
    width: 300px;
  }
}
@keyframes back-color{
  0% {
    background-color: rgb(19, 12, 4);
  }

  10% {
    background-color: pink;
  }
  30% {
    background-color: aqua;
  }
  60% {
    background-color: blueviolet;
  }
}

4. animation-delay: 음수가능 (즉시 시작되지만 애니메이션 주기의 도중에 시작된다. )

5. animation-timing-function : 애니메이션 중간 과정의 시간을 조절함. 빠르게 ? 천천히 ? 

ㅡ ease; 기본값 ,   ease-in; 천천보통 ,  ease-iut; ,보통천천?,   ease-in-out; 중간이 빠름,   linear; 속도일정.

6. animation-iteration-count : 반복횟수를 조정한다. number , linear 1번 , infinite  무한

7. animation-direction : 거꾸로 재생 

ㅡ normal , reverse 거꾸로 ,alternate 앞뒤앞뒤 , alternate-reverse 뒤앞뒤앞

div {
  width: 100px;
  height: 100px;
  border: 10px solid palevioletred;
  border-radius: 30px;
  background-color: lightskyblue;
  text-align: center;
  line-height: 100px;
}

.box {
  animation-name: rotate;
  animation-duration: 2s;
  animation-timing-function: linear;
  animation-iteration-count: 2;
  animation-direction: alternate;
}

@keyframes rotate {
  from {
    transform: rotate(0);
  }
  to {
    transform: rotate(360deg);
  }
}

8. animation-play-state :  paused; 일시정지, running 기본값  / 이 두가지로 조정가능.

9. animation-fill-mode : 실행 전과 후에 대상에 스타일을 적용할 방법

ㅡ none; 애니메이션 실행되지않으면 기본 설정 스타일로 시작됨.

ㅡ forwards : 끝난 모습의 키프레임 유지

ㅡ backwards : 미리 키프레임으로 준비해라

ㅡ both : 시작 과 끝을 다 키프레임으로 한다.

 

10. animation (shorthand) : name   duration   timing-function   delay    iteration-count   direction  fill-mode   play-state