html
로딩 화면과 로딩 후 표시할 화면을 만들어 놓음.
1
2
3
4
5
6
7
8
9
|
<div id="loader-bg">
<div id="loader">
<img src="img-loading.gif" width="80" height="80" alt="Now Loading..." />
<p>Now Loading...</p>
</div>
</div>
<div id="wrap">
로딩 후 표시할 내용
</div>
|
CSS
CSS에서는 로딩화면의 디자인을 정하고 초기설정을 비표시로 설정함.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#loader-bg {
display: none;
position: fixed;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
background: #000;
z-index: 1;
}
#loader {
display: none;
position: fixed;
top: 50%;
left: 50%;
width: 200px;
height: 200px;
margin-top: -100px;
margin-left: -100px;
text-align: center;
color: #fff;
z-index: 2;
}
|
jQuery
3~8행에서 CSS에서 비표시로 설정한 화면의 윈도우의 높이를 설정해서 표시하게 함.
10~14행에서 페이지가 로드 되었을 때 로딩화면을 페이드아웃 시킨 후 원래 화면을 표시함.
혹시 페이지 안에서 장시간 처리가 안 끝나 계속 로딩화면이 뜨는 경우가 있는데 10초가 지나면 강제로 로딩화면을 비표시로 전환하는 코드가 17-19행에 들어있음. 없어도 정상적으로 작동하니 필요없으면 지워도 상관없음.
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
|
<script>
$(function() {
var h = $(window).height();
$('#wrap').css('display','none');
$('#loader-bg ,#loader').height(h).css('display','block');
});
$(window).load(function () {
$('#loader-bg').delay(900).fadeOut(800);
$('#loader').delay(600).fadeOut(300);
$('#wrap').css('display', 'block');
});
$(function(){
setTimeout('stopload()',10000);
});
function stopload(){
$('#wrap').css('display','block');
$('#loader-bg').delay(900).fadeOut(800);
$('#loader').delay(600).fadeOut(300);
}
</script>
|
댓글
댓글 쓰기