티스토리 뷰

반응형

웹 개발을 하다 보면, 사용자 경험(UX)을 향상시키기 위해 다양한 방법을 고민하게 됩니다. 그중 하나가 바로 로딩 화면을 추가하는 것입니다. 특히 데이터 로드나 처리 시간이 길어질 경우, 로딩 화면은 사용자가 현재 상황을 이해하고 기다릴 수 있도록 돕는 중요한 요소입니다. 이번 글에서는 HTML, CSS, jQuery를 활용해 간단한 로딩 화면을 구현하는 방법을 소개하겠습니다.


1. 로딩 화면이란?

로딩 화면은 웹 페이지나 애플리케이션이 특정 작업을 처리하는 동안 사용자에게 진행 상황을 알려주는 역할을 합니다. 예를 들어, 서버에서 데이터를 가져오는 동안 아무런 표시 없이 빈 화면이 보인다면 사용자는 당황하거나 오류로 오해할 수 있습니다. 하지만 "잠시만 기다려 주세요"라는 메시지와 함께 로딩 애니메이션이 제공된다면, 사용자 경험이 훨씬 좋아질 것입니다.


2. 로딩 화면을 구성하는 기본 구조

로딩 화면을 구현하기 위해서는 크게 HTML, CSS, 그리고 JavaScript/jQuery가 필요합니다. 각각의 역할은 다음과 같습니다:

  • HTML: 로딩 화면의 구조를 정의합니다.
  • CSS: 화면의 디자인과 스타일을 설정합니다.
  • JavaScript/jQuery: 페이지 로드가 완료된 후 로딩 화면을 제거하는 동작을 추가합니다.

3. HTML: 로딩 화면의 틀 만들기

아래는 로딩 화면을 구성하는 HTML 코드입니다.

<!-- 로딩 화면 -->
<div id="overlay"></div>
<div id="waitingModal"> 화면을 로딩중입니다. 잠시만 기다려 주세요. </div>
  • #overlay: 화면 전체를 반투명하게 덮는 배경입니다.
  • #waitingModal: 중앙에 표시되는 로딩 메시지입니다.

4. CSS: 로딩 화면을 아름답게 꾸미기

HTML로 기본 틀을 만들었다면, 이제 CSS를 통해 스타일을 추가합니다.

<style>
	/* 로딩 화면 스타일 */
	#waitingModal {
		position: fixed;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		background-color: #fff;
		padding: 20px;
		border-radius: 10px;
		box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
		z-index: 10000;
		text-align: center;
	}	
	#overlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(0, 0, 0, 0.5);
		z-index: 9999;
	}
</style>

여기서 중요한 CSS 속성 몇 가지를 살펴보겠습니다:

  • position: fixed;: 로딩 화면이 페이지의 스크롤과 상관없이 항상 중앙에 위치하도록 만듭니다.
  • transform: translate(-50%, -50%);: 정확히 중앙에 배치하기 위한 트릭입니다.
  • z-index: HTML 요소의 층을 결정합니다. 숫자가 높을수록 상단에 위치합니다.

5. JavaScript/jQuery: 로딩 화면 숨기기

로딩 화면은 페이지가 완전히 로드된 후 사라져야 합니다. 이를 위해 간단한 jQuery 코드를 작성합니다.

// 페이지 로드가 완료되었을 때 로딩 모달 숨김
$(document).ready(function () {
	$('#overlay, #waitingModal').remove(); // 로딩 화면 제거
	$('#content').show(); // 콘텐츠 표시
});

이 코드의 주요 포인트는 다음과 같습니다:

  • $(document).ready: 페이지가 로드되면 실행되는 jQuery 이벤트입니다.
  • remove(): HTML 요소를 제거하는 함수입니다.
  • show(): CSS display: none;으로 숨겨진 요소를 다시 보이게 합니다.

6. 완성된 코드 조합

위에서 설명한 모든 요소를 하나로 합치면 다음과 같은 결과를 얻을 수 있습니다:

	
	
 
화면을 로딩중입니다. 잠시만 기다려 주세요.

		// 페이지 로드가 완료되었을 때 로딩 모달 숨김
		$(document).ready(function () {
			$('#overlay, #waitingModal').remove(); // 로딩 화면 제거
			$('#content').show(); // 콘텐츠 표시
		});
	

7. 추가 팁: 로딩 애니메이션 적용

로딩 화면에 간단한 애니메이션을 추가하면 더욱 매력적인 UX를 제공할 수 있습니다. 예를 들어, CSS를 활용해 모달에 로딩 스피너를 추가할 수 있습니다:

#waitingModal::before {
	content: "";
	display: inline-block;
	width: 30px;
	height: 30px;
	border: 3px solid #ccc;
	border-top-color: #007bff;
	border-radius: 50%;
	animation: spin 1s linear infinite;
	margin-bottom: 10px;
}
@keyframes spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

이 코드는 모달 내부에 회전하는 로딩 스피너를 추가합니다.


이번에 소개한 로딩 화면 구현 방법은 초보자도 쉽게 따라 할 수 있을 만큼 간단하면서도 실용적입니다. 프로젝트에 맞게 디자인과 기능을 조정해 보세요!

반응형
댓글