ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [css] css 애니메이션
    codeStates front-end/Css 2023. 3. 17. 13:19
    반응형

     

     

    목차

       

       

       

       

      📌  css 애니메이션

      css 애니메이션은 여러 개의 css 스타일을 부드럽게 전화시켜준다.

      @keyfremes 키워드를 활용하면 시간 순서대로 정밀하게 짜여진 애니메이션을 만들 수 있다.

       

       

      📍 @keyframes

       

      @keyframes를 지정하는 방법

       

      /* '%' 단위로 시간 진행에 따른 상태를 작성해주면 됩니다. */
      
      @keyframes 애니메이션이름 {
      	0% {            /* from 이라고 작성해도 됩니다.*/
      		CSS속성 : 속성값; 
      	}
      
      	50% {           /* 애니메이션 진행도에 따른 스타일을 설정합니다. */
                        /* 필요하다면 1부터 99까지도, 소수점까지도 모두 작성해도 됩니다.*/
      		CSS속성 : 속성값;
      	}
      
      	100% {          /* to 라고 작성해도 됩니다.*/
      		CSS속성 : 속성값;
      	}
      }

       

      @keyframes를 지정한 예시

       

      @keyframes lotate {
      	0% {
      		transform : rotate(0deg)
      	}
      
      	50% {
      		transform : rotate(180deg)
      	}
      
      	100% {
      		transform : rotate(360deg)
      	}
      }
      
      /* 시작 시점에선 0도, 50% 시점에선 180도, 완료 시점에선 360도 회전시키는 애니메이션입니다. */

       

       

      📍 animation 속성

       

      • animation : 띄어쓰기로 쭉 나열하면 아래의 속성들을 한 번에 지정할 수 있음
        • animation-name : 애니메이션의 중간 상태를 지정하는 이름.  @keyframes 블록에 작성
        • animation-duration : 한 싸이클의 애니메이션이 재생될 시간 지정
        • animation-delay : 애니메이션의 시작을 지연시킬 시간 지정
        • animation-direction : 애니메이션 재생 방향을 지정
        • animation-iteration-count : 애니메이션이 몇 번 반복될지 지정
        • animation-play-state : 애니메이션을 재생 상태. 멈추거나 다시 재생 시킬 수 있음
        • animation-timing-function : 중간 상태들의 전환을 어떤 시간간격으로 진행할지 지정
        • animation-fill-mode : 애니메이션이 재생 전 후의 상태 지정

       

       

      animation-name, duration

       

      애니매이션의 이름과 재생 시간을 작성해 주면 된다.

      이 속성으로 애니매이션이 재생되진 않지만, name과 duration은 반드시 지정해 주어야 한다.

       

      #logo {
      	animation : lotate;
      }
      //또는
      #logo {
      	animation-name : lotate;
      }
      // 기본값이 0 이므로 지정해주지않으면 재생되지 않는다.
      #logo {
      	animation : lotate 3s ;
      }
      // 총 정리
      #logo {
      	animation-name : lotate;
      	animation-duration : 3s;
      }

       

       

      animation-delay

       

      애니메이션 재생을 미룰 시간을 지정

       

      #logo {
      	animation : lotate 3s 3s ;
      }
      
      #logo {
      	animation-name : lotate;
      	animation-duration : 3s;
      	animation-delay : 3s;
      }

       

      animation-direction

       

      애니메이션 재생 방향을 지정

       

      • normal : 기본 값. 재생이 끝나면 처음부터 다시 재생합니다.
      • reverse : 역방향으로 재생합니다.
      • alternate : 순방향부터 역방향을 번갈아가며 재생합니다.
      • alternate-reverse : 역방향부터 순방향을 번갈아가며 재생합니다.

       

      #logo {
      	animation : lotate 3s reverse ;
      }
      
      #logo {
      	animation-name : lotate;
      	animation-duration : 3s;
      	animation-direction : alternate;
      }

       

       

      animation-iteration-count

       

      애니메이션이 몇 번 재생될지 지정, 기본 값은 1

       

      #logo {
      	animation : lotate 3s infinite ;
      /* 애니메이션이 무한 반복 됩니다. */
      }
      
      #logo {
      	animation-name : lotate;
      	animation-duration : 3s;
      	animation-iteration-count : 3 ;
      /* 애니메이션이 3번 반복 됩니다. */
      }

       

      animation-play-state

       

      애니메이션이 재생 상태를 설정

       

      #logo {
      	animation : lotate 3s pause ;
      }
      
      #logo {
      	animation-name : lotate;
      	animation-duration : 3s;
      	animation-play-state : pause ;
      }

       

       

      animation-timing-function

       

      애니메이션의 진행 속도를 설정

       

       

      animation-fill-mode

       

      애니메이션 재생 전 후의 상태를 지정

       

      • none : 기본 값. 재생중이 아닌 경우 요소의 스타일을 유지합니다.
      • forwards : 재생중이 아닌 경우 마지막 키프레임 스타일을 유지합니다.
      • backwards : 재생중이 아닌 경우 첫 번째 키프레임 스타일을 유지합니다.
      • both : 재생 전에는 첫 번째 키프레임 스타일을, 재생 후에는 마지막 키프레임 스타일을 유지합니다.

       

      🔗  @keyframes 중간값

      중간값은 애니메이션 재생 시간을 기준으로 함

       

      #logo {
      	**animation-name : lotate;**    /* lotate 라는 이름의 키프레임 애니메이션을 */
      	animation-duration : 3s;               /* 3초 동안 재생하며, */
      	animation-iteration-count : infinite;  /* 애니메이션을 무한 반복하고, */
          animation-timing-function : linear;    /* 선형으로 재생합니다. */
      }
      
      /* 아래와 같이 일괄 작성해도 동일하게 적용됩니다. */
      
      #logo {
      	animation : **lotate** 3s infinite linear;
      }
      반응형

      'codeStates front-end > Css' 카테고리의 다른 글

      [css] 반응형 웹  (0) 2023.03.16
      [css] Selector  (0) 2023.01.04
      [css] 박스를 구성하는 요소  (0) 2023.01.04
      [css] 박스 모델  (0) 2023.01.04
      [css] css 속성  (0) 2023.01.04

      댓글

    Designed by Tistory.