在上传大图片、修改大量数据、加载大量数据的时候可能会用到一些遮罩层提醒用户等待片刻,一是为了让用户有心理预期,二是为了用遮罩层防止用户反复操作

 1 var MaskUtil = (function () {
 2 
 3     var $mask, $maskMsg;
 4 
 5     var defMsg = '处理中,请稍等O(∩_∩)O ...';
 6 
 7     function init() {
 8         if (!$mask) {
 9             $mask = $("<div class=\"datagrid-mask mymask\"></div>").appendTo(".window");
10         }
11         if (!$maskMsg) {
12             $maskMsg = $("<div class=\"datagrid-mask-msg mymask\">" + defMsg + "</div>")
13                 .appendTo(".window").css({ 'font-size': '12px' });   //这里的.window指的是需要遮罩的容器的选择器,下面的一样。你们可以用你们自己的容器选择器
14         }
15 
16         $mask.css({ width: "100%", height: $(".window").height() });
17 
18         $maskMsg.css({
19             left: ($(".window").outerWidth(true) - 190) / 2, top: ($(".window").height() - 45) / 2,
20         });
21 
22     }
23 
24     return {
25         mask: function (msg) {
26             init();
27             $mask.show();
28             $maskMsg.html(msg || defMsg).show();
29         }
30         , unmask: function () {
31             $mask.hide();
32             $maskMsg.hide();
33         }
34     }
35 
36 }());

效果就是这样:

 

使用方法是,在加载前调用

 MaskUtil.mask();

加载成功后调用

 MaskUtil.unmask();

感谢axe大神的技术支持,原文地址:http://blog.csdn.net/thc1987/article/details/37568609