728x90
반응형
질문 : jQuery를 사용하여“Please Wait, Loading…”애니메이션을 어떻게 만들 수 있습니까?
내 사이트에 "잠시 기다려주십시오.로드 중"회전하는 원 애니메이션을 배치하고 싶습니다. jQuery를 사용하여 어떻게해야합니까?
답변
다양한 방법으로이 작업을 수행 할 수 있습니다. "로드 중 ..."이라는 페이지의 작은 상태처럼 미묘하거나 새 데이터가로드되는 동안 전체 요소가 페이지를 회색으로 표시하는 것처럼 시끄러울 수 있습니다. 아래에서 취하는 접근 방식은 두 가지 방법을 모두 수행하는 방법을 보여줍니다.
설정
http://ajaxload.info 에서 멋진 "로드"애니메이션을 가져 와서 시작하겠습니다.
ajax 요청을 할 때마다 표시 / 숨길 수있는 요소를 만들어 보겠습니다.
<div class="modal"><!-- Place at bottom of page --></div>
CSS
다음으로 약간의 감각을 부여하겠습니다.
/* Start by setting display:none to make this hidden.
Then we position it in relation to the viewport window
with position:fixed. Width, height, top and left speak
for themselves. Background we set to 80% white with
our animation centered, and no-repeating */
.modal {
display: none;
position: fixed;
z-index: 1000;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: rgba( 255, 255, 255, .8 )
url('http://i.stack.imgur.com/FhHRx.gif')
50% 50%
no-repeat;
}
/* When the body has the loading class, we turn
the scrollbar off with overflow:hidden */
body.loading .modal {
overflow: hidden;
}
/* Anytime the body has the loading class, our
modal element will be visible */
body.loading .modal {
display: block;
}
jQuery
좋습니다. jQuery로 이동합니다. 다음 부분은 실제로 정말 간단합니다.
$body = $("body");
$(document).on({
ajaxStart: function() { $body.addClass("loading"); },
ajaxStop: function() { $body.removeClass("loading"); }
});
그게 다야! ajaxStart
또는 ajaxStop
이벤트가 발생할 때마다 body 요소에 일부 이벤트를 첨부합니다. ajax 이벤트가 시작되면 본문에 "loading"클래스를 추가합니다. 이벤트가 완료되면 본문에서 "loading"클래스를 제거합니다.
실제 동작보기 : http://jsfiddle.net/VpDUG/4952/
출처 : https://stackoverflow.com/questions/1964839/how-can-i-create-a-please-wait-loading-animation-using-jquery
728x90
반응형
'프로그래밍 언어 > jQuery, ajax' 카테고리의 다른 글
jQuery에서 버튼의 텍스트를 변경하는 방법 (0) | 2021.09.14 |
---|---|
jQuery 및 Ajax에서 기본 인증 사용 (0) | 2021.09.13 |
jQuery 텍스트 영역에서 커서 위치 설정 (0) | 2021.09.13 |
jQuery.Ajax로 파일 다운로드하는 방법 (0) | 2021.09.10 |
'$ (document) .ready ()'에 해당하는 자바스크립트 명령어 (0) | 2021.09.09 |