[CSS - keyframes] 로딩 애니메이션(원 도형 크기, 투명도 변화)

2022. 9. 22. 15:51· 프론트엔드/CS

CSS에서 애니메이션을 배웠습니다.

 

로딩창에서 원의 크기가 개별적으로 달라지는 애니메이션을 구현하곤 합니다.

 

이를 구현하기 위해서는 가상클래스와 keyframes를 사용합니다.

 

먼저 html입니다.

<body>
  <div class="loading">
    <span></span>
    <span></span>
    <span></span>
  </div>
</body>

div 안에 span 태그를 3개 넣습니다. 이 span 태그가 원형 도형입니다.

 

그 다음 핵심인 CSS를 작성합니다.

.loading span {
  display: inline-block;
  width: 15px;
  height: 15px;
  background-color: grey;
  border-radius: 50%;
  animation: loading 1s linear infinite;
}
  • display: inline-block - inline 요소로 사용함과 동시에 가로배치하기 위해서 inline-block으로 설정했습니다.
  • width, height - 원형 크기 속성입니다.
  • background-color: grey - 임시로 설정한 도형 색상입니다.
  • border-radius: 50% - 보더의 가장자리를 둥글게 만듭니다.
  • animation: loading 1s linear infinite - 애니메이션 속성입니다. loading이라는 이름의 키프레임을 사용하여 1초동안 지속시키고, linear로 일정한 속도로 진행되도록 합니다(ease를 사용하면 fadeIn, fadeOut과 같이 시작과 끝이 부드럽게 천천히 작동합니다). 그리고 무한 반복하기 위해 infinite를 사용했습니다.

다음은 애니메이션입니다.

@keyframes loading {
  0%,
  100% {
    opacity: 0;
    transform: scale(0.5);
  }
  50% {
    opacity: 1;
    transform: scale(1.2);
  }
}
  • 0%, 100% { opacity: 0; transform: scale(0.5); } - 애니메이션의 시작과 끝의 시점에서 투명하게 하며, 크기를 절반으로 줄입니다.
  • 50% { opacity: 1; transform: scale(1.2); } - 애니메이션을 선명하게 하고, 크기를 1.2배로 키웁니다.

이제 각각의 요소에 대해서 색상과 딜레이를 설정합니다. 딜레이를 설정하지 않아서 모든 원이 동시에 애니메이션이 실행됩니다.

.loading span:nth-child(1) {
  animation-delay: 0s;
  background-color: crimson;
}
.loading span:nth-child(2) {
  animation-delay: 0.2s;
  background-color: dodgerblue;
}
.loading span:nth-child(3) {
  animation-delay: 0.4s;
  background-color: royalblue;
}

각각 딜레이를 조금씩 주고, 색상도 다르게 합니다. 이때 사용한 가상 클래스는 :nth-child()입니다.

저작자표시 비영리

'프론트엔드 > CS' 카테고리의 다른 글

[CSS - Hover, Opacity] Hover시 디테일 표시  (0) 2022.09.25
[CSS - Hover, Display] 드롭다운 네비게이션  (0) 2022.09.25
[CSS - keyframes, border-radius] 원 도형 아티클 디자인  (0) 2022.09.23
[CSS - Keyframes] 로딩 애니메이션(사각형 회전 이동, 색상 변화)  (1) 2022.09.23
'프론트엔드/CS' 카테고리의 다른 글
  • [CSS - Hover, Opacity] Hover시 디테일 표시
  • [CSS - Hover, Display] 드롭다운 네비게이션
  • [CSS - keyframes, border-radius] 원 도형 아티클 디자인
  • [CSS - Keyframes] 로딩 애니메이션(사각형 회전 이동, 색상 변화)
턴태
턴태
import { Dream } from "future";
턴태
턴태의 밑바닥부터 시작하는 de-vlog
턴태
전체
오늘
어제
  • ROOT (187)
    • Node.js (37)
      • ES6 (1)
      • TypeScript (3)
      • Express.js (16)
      • NestJS (16)
      • JS (24)
    • 프론트엔드 (29)
      • CS (5)
    • 백엔드 (1)
      • 검색 (2)
      • Database (1)
    • 기타 툴 (1)
      • git (1)
    • 데브옵스 & 인프라 (19)
      • Kubernetes (15)
      • Docker (2)
      • Monitoring (1)
      • IaC (1)
    • Algorithm (90)
      • Implementation & simulation (5)
      • Math (4)
      • Brute Force (1)
      • String (0)
      • Graph (5)
      • Recursion & Backtracking (19)
      • Divide & Conquer (2)
      • Dynamic Programming (18)
      • Greedy (13)
      • Priority Queue (2)
      • Binary Search (6)
      • Data Structure (7)
      • Shortest Path (5)
      • Minimum Spanning Tree (1)
      • Sorting (1)
      • Prefix Sum (1)
    • Linux (1)
      • Ubuntu (1)
    • Diary (5)
      • Algorithm (1)
      • Conference (1)
      • Retrospective (3)
    • Book (0)
      • Self-Development (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • backtracking
  • baekjoon
  • 파이썬
  • Toy Project
  • 백트래킹
  • 네스트
  • 디프만
  • Express
  • 타입스크립트
  • TypeScript
  • GREEDY
  • 함수형 프로그래밍
  • 토이프로젝트
  • Kubernetes
  • node.js
  • 백준
  • 인프런
  • Omuk
  • N과 M
  • nestjs
  • 자바스크립트
  • k8s
  • python
  • 쿠버네티스
  • dynamic programming
  • 오먹
  • 다이나믹 프로그래밍
  • 인프런X디프만
  • 익스프레스
  • 노드

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
턴태
[CSS - keyframes] 로딩 애니메이션(원 도형 크기, 투명도 변화)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.