讓你的頁面實現自訂的 Ajax Loading載入的體驗!

來源:互聯網
上載者:User

一所示: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);            }        });    });

 

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

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.