Animation

2024. 4. 28. 14:02·Web
반응형

개요. 

요소에게 변화를 주기 위해서 transform과 transition을 사용했다. 

이때 최종적으로 이동되는 위치가 한번 꺽어서 다른 방향으로 이동한다면 transform을 사용해서 구현할 수 없어진다. 

 

이때 사용하는 것이 animtaion이다. 

animation은 닥독으로 사용되는 것이 아닌 tansform이나 width 등 다른 속성과 함께 사용해서 원하는 동작을 

만들어내는 속성이다. 

 

@keyframes

실제로 애니메이션의 동작을 작성하는 속성이다. 이것을 활용해서 원하는 애니메이션을 만들 수 있다. 

 

keyframes는  0% ~ 100% 까지의 타임라인이 존재한다. 

애니메이션의 시작점이 0%이고 끝점이 100%이다. 중간에 원하는 어떤 지점에도 특정 애니메이션을 넣을 수 있다. 

 

이제 앞서 말했던 x축으로 쭉 이동하다가 y축으로 이동하는 애니메이션을 만들어보자 : 

@keyframes move-box {
    0% {
      transform: translate(0, 0);
    }

    50% {
      transform: translate(300px, 0);
    }

    100% {
      transform: translate(300px, 300px);
    }
}

 

0%에서는 별다른 변동이 없으며 50%에서는 x축으로 300px 이동하고 마지막 100%에서 y축으로 300px 이동한다. 

이렇게 선언하면 애니메이션 동작은 완료된 것이다. 

 

animation 

만들어둔 keyframes를 실제 사용하려면 animation 속성을 사용해야 한다. 

.box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 100px;
    border: 2px solid #000;
    background: teal;

    animation: move-box 2s;
}

 

사용하는 방법은 transition과 매우 유사한데, 먼저 애니메이션 명칭을 입력하고 실행 시간을 추가하면 끝이다.

만들어진 코드를 실행해보면 제대로 애니메이션이 나타나는 것을 확인할 수 있다. 

애니메이션의 상세 속성도 transform과 같이 여러 개가 존재한다. 

animation-name: move-box;
animation-duration: 2s;
animation-delay: 1s;
animation-iteration-count: 2;
animation-timing-function: ease;
animation-direction: alternate; 
animation-fill-mode: forwards;
animation-play-state: paused;

 

대부분의 속성이 transition과 동일하다고 생각하면 된다. 

animation-name 

사용할 애니메이션의 이름을 넣는 속성이다. 

keyframes로 만든 애니메이션의 이름을 넣어주면 된다. 

animation-duration 

애니메이션의 실행 시간을 나타낸다. 

animation-delay 

애니메이션이 실행되기 전 대기 시간을 나타낸다. 설정한 시간 이후 실행된다. 

animation-iteration-count

애니메이션이 실행되는 횟수를 나타낸다. 무한으로 반복하고 싶다면 infinite를 설정하면 무한으로 반복시킬 수 있다.

animation-timing-function

transition-timing-function 처럼 변화가 진행되는 속도를 설정할 수 있다. 

기본값은 동일하게 ease인데, linear 또는 커스텀을 통해서 진행 속도를 조절할 수 있다. 

animation-direction

기본적으로 애니메이션을 끝나면 다시 0%의 위치로 돌아오게 된다.

하지만 다시 100%에서 0%로 돌아오게 하는 방법이 존재하는데 이것이 animation-direction이다. 

alternate 속성을 사용하면 다시 되돌아오는 애니메이션을 만들 수 있는데,

100% 에서 0%로 진행되는 reverse 속성이나, 100%에서 0%로 다시 100%로 돌아오는 alternate-reverse 속성도 있다. 

animation-fill-mode

애니메이션이 끝나면 0%로 돌아가는데, 100%에 멈춰있게 하는 만들 수 있다. 

forwards 속성을 주게 되면 애니메이션이 끝났을 때 0%로 돌아가는 것이 아닌 100%에 남아있게 된다.

animation-play-state

애니메이션이 실행되는 상태를 나타낸다. paused 속성을 주게 된다면 애니메이션이 바로 멈춘다. 

hover 와 같은 가상 선택자를 함께 사용해서 특정 이벤트에서 애니메이션이 멈추게 할 수 있다. 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Web' 카테고리의 다른 글

CSS 선택자  (2) 2024.05.05
Animation - frame by frame  (3) 2024.05.01
CSS 변환  (2) 2024.04.25
아이폰에서 폰트 크기가 제대로 적용이 안돼요...  (1) 2024.04.09
구글 SEO  (1) 2024.04.06
'Web' 카테고리의 다른 글
  • CSS 선택자
  • Animation - frame by frame
  • CSS 변환
  • 아이폰에서 폰트 크기가 제대로 적용이 안돼요...
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    덤프
    ReactNative
    네이버 부스트캠프
    프로그래머스
    식물
    네트워크
    next.js
    리액트
    바질
    타일러영어
    알고리즘
    redux
    CSS
    ChatGPT
    typescript
    react
    다이소
    영어독학
    영어회화
    javascript
    바질 키우기
    리얼학습일기
    리얼클래스
    자바스크립트
    타입스크립트
    Babel
    Docker
    webpack
    Node.js
    CCNA
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
Animation
상단으로

티스토리툴바