/** * Copyright (c) 2009 Sergiy Kovalchuk (serg472@gmail.com) * * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. * * Following code is based on Element.mask() implementation from ExtJS framework (http://extjs.com/) * 蜗牛修改版,QQ:672308444 新增功能及改动: $("#info").mask("Loading",2000);//遮罩出现2秒后消失 $("#info").mask("Loading",-2000);//遮罩延迟2秒后出现 $("#info").mask("Loading",-2000,3000);//遮罩延迟2秒后出现,然后3秒后消失 */ (function($){$.fn.mask=function(label,delay,showtime){$(this).each(function(){if(delay!==undefined){var element=$(this);if(delay<0){element.data("_mask_timeout",setTimeout(function(){$.maskElement(element,label);if(showtime>0){setTimeout(function(){$.unmaskElement(element);},showtime);}},delay*-1));}else if(delay>0){$.maskElement(element,label);setTimeout(function(){$.unmaskElement(element);},delay);}}else{$.maskElement($(this),label);}});};$.fn.unmask=function(){$(this).each(function(){$.unmaskElement($(this));});};$.fn.isMasked=function(){return this.hasClass("masked");};$.maskElement=function(element,label){if(element.data("_mask_timeout")!==undefined){clearTimeout(element.data("_mask_timeout"));element.removeData("_mask_timeout");}if(element.isMasked()){$.unmaskElement(element);}if(element.css("position")=="static"){element.addClass("masked-relative");}element.addClass("masked");var maskDiv=$('
');if(navigator.userAgent.toLowerCase().indexOf("msie")>-1){maskDiv.height(element.height()+parseInt(element.css("padding-top"))+parseInt(element.css("padding-bottom")));maskDiv.width(element.width()+parseInt(element.css("padding-left"))+parseInt(element.css("padding-right")));}if(navigator.userAgent.toLowerCase().indexOf("msie 6")>-1){element.find("select").addClass("masked-hidden");}element.append(maskDiv);if(label!==undefined){var maskMsgDiv=$('');maskMsgDiv.append('
'+label+'
');element.append(maskMsgDiv);maskMsgDiv.css("top",Math.round(element.height()/2-(maskMsgDiv.height()-parseInt(maskMsgDiv.css("padding-top"))-parseInt(maskMsgDiv.css("padding-bottom")))/2)+"px");maskMsgDiv.css("left",Math.round(element.width()/2-(maskMsgDiv.width()-parseInt(maskMsgDiv.css("padding-left"))-parseInt(maskMsgDiv.css("padding-right")))/2)+"px");maskMsgDiv.show();}};$.unmaskElement=function(element){if(element.data("_mask_timeout")!==undefined){clearTimeout(element.data("_mask_timeout"));element.removeData("_mask_timeout");}element.find(".loadmask-msg,.loadmask").remove();element.removeClass("masked");element.removeClass("masked-relative");element.find("select").removeClass("masked-hidden");};})(jQuery);