在 Ajax 應用中,顯示一個 Dialog(以 Div 方式顯示)前,都會先建一個 Mask。因為經常會用到,所以寫成了一個 jQuery 插件,方便自己的使用。
代碼如下:
(function($){
$.extend({
documentMask: function(options){
// 擴展參數
var op = $.extend({
opacity: 0.8,
z: 10000,
bgcolor: '#000'
}, options);
// 創建一個 Mask 層,追加到 document.body
$('<div class="jquery_addmask"> </div>').appendTo(document.body).css({
position: 'absolute',
top: '0px',
left: '0px',
'z-index': op.z,
width: $(document).width(),
height: $(document).height(),
'background-color': op.bgcolor,
opacity: 0
}).fadeIn('slow', function(){
// 淡入淡出效果
$(this).fadeTo('slow', op.opacity);
}).click(function(){
// 單擊事件,Mask 被銷毀
$(this).fadeTo('slow', 0, function(){
$(this).remove();
});
});
return this;
}
});
})(jQuery);
使用方法
代碼如下:
$.documentMask();
$.documentMask({
'opacity': 0.6,
'bgcolor': '#E79673',
'z': 1000000
});
參數中,z 表示 z-index。
兼容性
支持 IE 6.0+, FF2+, Safari 3.1+, Opera 9.0+