本文只提供思路,CSS神馬的自己定制吧,JS是可以優化的,比如,輸出圖片的JS也可以放到showdiv()里面,我沒有做優化,只是實現,別笑話我,我比較懶...
基本思路:由於Html的解析是從上到下的,所以,可以在母版頁(MVC中的LayOut)頁面最上面輸出一個遮罩層和一張等待效果的圖片,這樣子,頁面打開的時候,就會有一個等待效果了。代碼如下:
注意:下面這些代碼一定是放到頁面的最前面的,放到后面可能就不太好了。
1 <head> 3 <style type="text/css"> 4 #loading { 5 /*margin-top:300px;*/ 6 position: absolute; 7 top: 40%; 8 left: 60%; 9 margin-left: -75px; 10 text-align: center; 11 line-height: 25px; 12 font-size: 12px; 13 font-weight: bold; 14 color: #F00; 15 z-index: 1002; 16 } 17 #bg { 18 display: none; 19 position: absolute; 20 top: 0%; 21 left: 0%; 22 width: 100%; 23 height: 100%; 24 background-color: black; 25 z-index: 1001; 26 -moz-opacity: 0.6; 27 opacity: .60; 28 filter: alpha(opacity=60); 29 } 30 </style> 31 <script type="text/javascript"> 32 function showdiv() { 33 document.getElementById("bg").style.display = "block"; 34 } 35 function hidediv() { 36 document.getElementById("bg").style.display = 'none'; 37 } 38 document.write("<img src='/loading.gif' id='loading' /><div id='bg'></div>"); 39 showdiv(); 40 </script>
第二步:給所有的的點擊事件加上遮罩等待效果:
1 $("a").click(function () { 2 showdiv(); 3 $("#loading").fadeIn(); 4 });
第三步:加載完了隱藏遮罩層和等待圖片:
頁面加載完成隱藏
1 $(function() { 2 $('#loading').fadeOut(); 3 hidediv(); 4 });
AJAX請求加上效果,請求完成隱藏
$(function () { // 設置jQuery Ajax全局的參數 $.ajaxSetup({ beforeSend: function () { showdiv(); $("#loading").fadeIn(); }, complete:function() { $('#loading').fadeOut(); hidediv(); }, }); });
AJAX我沒有經過測試放出來的,如果有錯誤,希望能及時告訴我...
在手機上,應該是去監聽它的Touch事件比較好,但是我給TouchStart事件和Touched事件不管哪個添加監聽之后,鏈接就不會跳轉了,如果誰有好的解決方案,希望能告訴我!先謝過了....
本人水平有限,實現方式比較低級,歡迎吐槽,共同進步...
