本文只提供思路,CSS神马的自己定制吧,JS是可以优化的,比如,输出图片的JS也可以放到showdiv()里面,我没有做优化,只是实现,别笑话我,我比较懒...
基本思路:由于Html的解析是从上到下的,所以,可以在母版页(MVC中的LayOut)页面最上面输出一个遮罩层和一张等待效果的图片,这样子,页面打开的时候,就会有一个等待效果了。代码如下:
注意:下面这些代码一定是放到页面的最前面的,放到后面可能就不太好了。
<head>
<style type="text/css">
#loading {
/*margin-top:300px;*/
position: absolute;
top: %;
left: %;
margin-left: -75px;
text-align: center;
line-height: 25px;
font-size: 12px;
font-weight: bold;
color: #F00;
z-index: ;
}
#bg {
display: none;
position: absolute;
top: %;
left: %;
width: %;
height: %;
background-color: black;
z-index: ;
-moz-opacity: 0.6;
opacity: .;
filter: alpha(opacity=);
}
</style>
<script type="text/javascript">
function showdiv() {
document.getElementById("bg").style.display = "block";
}
function hidediv() {
document.getElementById("bg").style.display = 'none';
}
document.write("<img src='/loading.gif' id='loading' /><div id='bg'></div>");
showdiv();
</script>
第二步:给所有的的点击事件加上遮罩等待效果:
$("a").click(function () {
showdiv();
$("#loading").fadeIn();
});
第三步:加载完了隐藏遮罩层和等待图片:
页面加载完成隐藏
$(function() {
$('#loading').fadeOut();
hidediv();
});
AJAX请求加上效果,请求完成隐藏
$(function () {
// 设置jQuery Ajax全局的参数
$.ajaxSetup({
beforeSend: function () {
showdiv();
$("#loading").fadeIn();
},
complete:function() {
$('#loading').fadeOut();
hidediv();
},
});
});
AJAX我没有经过测试放出来的,如果有错误,希望能及时告诉我...
在手机上,应该是去监听它的Touch事件比较好,但是我给TouchStart事件和Touched事件不管哪个添加监听之后,链接就不会跳转了,如果谁有好的解决方案,希望能告诉我!先谢过了....
本人水平有限,实现方式比较低级,欢迎吐槽,共同进步...