프로그래밍 언어/jQuery, ajax

jQuery를 사용하여 로딩 애니메이션을 만드는 방법

Rateye 2021. 9. 13. 02:14
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
반응형