讓你的頁面實現自定義的 Ajax Loading加載的體驗!


如圖一所示:body級別的遮罩,整個頁面Loading加載........效果!

如圖二所示Div級別的遮罩,具體到某個Div的Loading加載........效果!

 

Html代碼如下:

<a href="#" id="load">Load</a>
<div id="tb">
    <div id="result">
    </div>
</div>

 

在這次項目中,我就發現了這個問題,ajax請求太單調了,以前的做法都是在ajax請求之前手動去設置一個Loading加載的小圖片,加載完成之后隱藏,每次都重復着寫這樣的代碼,實在是太麻煩了。直到前段時間看了“蔣大叔”的一篇ajax文章,給了我一個想法,但是還不達打到我想要的目的,所以自己又想着做成通用的,一次性解決這個疑難雜症,一勞永逸,又自己改了改,現在總算是通用的了!

  /******重寫Ajax操作,做成通用Loading操作*******/
        $.ajax2 = function (options, aimDiv) {
            var img = $("<img id=\"progressImgage\"  src=\"/Images/ajax-loader.gif\" />"); //Loading小圖標
            var mask = $("<div id=\"maskOfProgressImage\"></div>").addClass("mask").addClass("hide"); //Div遮罩
            var PositionStyle = "fixed";
            //是否將Loading固定在aimDiv中操作,否則默認為全屏Loading遮罩
            if (aimDiv != null && aimDiv != "" && aimDiv != undefined) {
                $(aimDiv).css("position", "relative").append(img).append(mask);
                PositionStyle = "absolute";
            }
            else {
                $("body").append(img).append(mask);
            }
            img.css({
                "z-index": "2000",
                "display": "none"
            })
            mask.css({
                "position": PositionStyle,
                "top": "0",
                "right": "0",
                "bottom": "0",
                "left": "0",
                "z-index": "1000",
                "background-color": "#000000",
                "display": "none"
            });
            var complete = options.complete;
            options.complete = function (httpRequest, status) {
                img.hide();
                mask.hide();
                if (complete) {
                    complete(httpRequest, status);
                }
            };
            options.async = true;
            img.show().css({
                "position": PositionStyle,
                "top": "40%",
                "left": "50%",
                "margin-top": function () { return -1 * img.height() / 2; },
                "margin-left": function () { return -1 * img.width() / 2; }
            });
            mask.show().css("opacity", "0.1");
            $.ajax(options);
        };

調用如下:

//頁面Div的Loading效果
$("#load").click(function() {
        $.ajax2({
            url:'@Url.Action("Index")?' + new Date().toTimeString(),
            success: function (result) {
                $("#result").html(result);
            }
        }, "#tb");
    });

//整個頁面的Loading效果
$("#load").click(function() {
        $.ajax2({
            url:'@Url.Action("Index")?' + new Date().toTimeString(),
            success: function (result) {
                $("#result").html(result);
            }
        });
    });

 

總結:希望能給大家一點啟示,好東西應該分享,本人很菜!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM