메인 콘텐츠
로딩 화면이 종료되면 이 콘텐츠가 표시됩니다.
웹 개발을 하다 보면, 사용자 경험(UX)을 향상시키기 위해 다양한 방법을 고민하게 됩니다. 그중 하나가 바로 로딩 화면을 추가하는 것입니다. 특히 데이터 로드나 처리 시간이 길어질 경우, 로딩 화면은 사용자가 현재 상황을 이해하고 기다릴 수 있도록 돕는 중요한 요소입니다. 이번 글에서는 HTML, CSS, jQuery를 활용해 간단한 로딩 화면을 구현하는 방법을 소개하겠습니다.
로딩 화면은 웹 페이지나 애플리케이션이 특정 작업을 처리하는 동안 사용자에게 진행 상황을 알려주는 역할을 합니다. 예를 들어, 서버에서 데이터를 가져오는 동안 아무런 표시 없이 빈 화면이 보인다면 사용자는 당황하거나 오류로 오해할 수 있습니다. 하지만 "잠시만 기다려 주세요"라는 메시지와 함께 로딩 애니메이션이 제공된다면, 사용자 경험이 훨씬 좋아질 것입니다.
로딩 화면을 구현하기 위해서는 크게 HTML, CSS, 그리고 JavaScript/jQuery가 필요합니다. 각각의 역할은 다음과 같습니다:
아래는 로딩 화면을 구성하는 HTML 코드입니다.
<!-- 로딩 화면 -->
<div id="overlay"></div>
<div id="waitingModal"> 화면을 로딩중입니다. 잠시만 기다려 주세요. </div>
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 속성 몇 가지를 살펴보겠습니다:
로딩 화면은 페이지가 완전히 로드된 후 사라져야 합니다. 이를 위해 간단한 jQuery 코드를 작성합니다.
// 페이지 로드가 완료되었을 때 로딩 모달 숨김
$(document).ready(function () {
$('#overlay, #waitingModal').remove(); // 로딩 화면 제거
$('#content').show(); // 콘텐츠 표시
});
이 코드의 주요 포인트는 다음과 같습니다:
위에서 설명한 모든 요소를 하나로 합치면 다음과 같은 결과를 얻을 수 있습니다:
// 페이지 로드가 완료되었을 때 로딩 모달 숨김
$(document).ready(function () {
$('#overlay, #waitingModal').remove(); // 로딩 화면 제거
$('#content').show(); // 콘텐츠 표시
});
로딩 화면에 간단한 애니메이션을 추가하면 더욱 매력적인 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);
}
}
이 코드는 모달 내부에 회전하는 로딩 스피너를 추가합니다.
이번에 소개한 로딩 화면 구현 방법은 초보자도 쉽게 따라 할 수 있을 만큼 간단하면서도 실용적입니다. 프로젝트에 맞게 디자인과 기능을 조정해 보세요!
재고파악하는 구조 프로그램 연구 (0) | 2025.01.20 |
---|---|
[html] 테그를 사용해서 기존의 이미지를 놓고 그 위에 input 요소를 배치할 수 있는가? (0) | 2024.09.29 |
개발중입니다. 라고 화면에 표시하기... 코드 (0) | 2024.09.09 |
IME 문제로 키보드 안될때, 한글 입력시 rㅏ 이런식을 될때 (0) | 2023.03.04 |
yml 파일은 도대체 뭔가? (0) | 2023.02.07 |
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |