[javascript] 자바스크립트로 페이드 인/아웃 애니메이션을 적용할 수 있는 로딩 스피너

웹 애플리케이션 또는 웹사이트를 개발할 때 로딩 스피너는 사용자에게 작업이 진행 중임을 시각적으로 알려주는 중요한 요소입니다. 자바스크립트를 사용하여 로딩 스피너에 페이드 인/아웃 효과를 적용하는 방법에 대해 알아보겠습니다.

HTML

먼저, HTML 파일에 로딩 스피너를 추가합니다. 아래는 간단한 예제입니다.

<div id="loader" class="loader"></div>

CSS

로딩 스피너에는 CSS 스타일링이 필요합니다. 아래는 로딩 스피너를 스타일링하는 예제입니다.

.loader {
  border: 4px solid #f3f3f3;
  border-top: 4px solid #3498db;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  animation: spin 2s linear infinite;
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -25px;
  margin-left: -25px;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.fade-in {
  animation: fadeIn 0.5s;
}

.fade-out {
  animation: fadeOut 0.5s;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

JavaScript

이제 자바스크립트로 로딩 스피너의 페이드 인/아웃 효과를 구현해보겠습니다.

const loader = document.getElementById('loader');

function showLoader() {
  loader.classList.add('fade-in');
  loader.style.display = 'block';
}

function hideLoader() {
  loader.classList.add('fade-out');
  setTimeout(() => {
    loader.style.display = 'none';
    loader.classList.remove('fade-in', 'fade-out');
  }, 500);
}

위의 코드에서 showLoader 함수는 로딩 스피너를 보여주고, hideLoader 함수는 로딩 스피너를 숨깁니다. 각 함수에서는 페이드 인/아웃을 위한 CSS 클래스를 추가하고 제거합니다.

로딩 스피너를 사용하여 사용자 경험을 향상시키고 작업이 진행 중임을 시각적으로 나타내는 것은 매우 중요합니다. 이번 예제를 참고하여 자신의 프로젝트에 로딩 스피너를 적용해보세요!

참고 자료: