java遮罩层_JQuery 遮罩层实现(mask)实现代码

其中有mask()和unmask()这两个方法,这两个方法在指定的元素上添加一个遮罩层和一个提示消息实现,增加客户体验。由于最近做项目的时候,发现有时为了使用这一两个方法需要引入一个比较“庞大”的Extjs进来,觉得有点不划算,于是自己用jquery实现了一个比较简单mask、unmask方法来实现该效果。大家知道jquery是一个优秀的javascript框架,不但体积小而且使用方便,我现在逐渐将系统中使用Extjs实现的代码或组建全部更换成Jquery来实现。好了不多说,上我的代码,这些代码是根据网上的一位朋友实现的documentMask基础上进行整改的。使使用上更加灵活方便了。

(没什么技术含量,旨在为那些需要的朋友提供帮助)

(function(){

$.extend($.fn,{

mask: function(msg,maskDivClass){

this.unmask();

// 参数

var op = {

opacity: 0.8,

z: 10000,

bgcolor: '#ccc'

};

var original=$(document.body);

var position={top:0,left:0};

if(this[0] && this[0]!==window.document){

original=this;

position=original.position();

}

// 创建一个 Mask 层,追加到对象中

var maskDiv=$('

maskDiv.appendTo(original);

var maskWidth=original.outerWidth();

if(!maskWidth){

maskWidth=original.width();

}

var maskHeight=original.outerHeight();

if(!maskHeight){

maskHeight=original.height();

}

maskDiv.css({

position: 'absolute',

top: position.top,

left: position.left,

'z-index': op.z,

width: maskWidth,

height:maskHeight,

'background-color': op.bgcolor,

opacity: 0

});

if(maskDivClass){

maskDiv.addClass(maskDivClass);

}

if(msg){

var msgDiv=$('

'+msg+'
');

msgDiv.appendTo(maskDiv);

var widthspace=(maskDiv.width()-msgDiv.width());

var heightspace=(maskDiv.height()-msgDiv.height());

msgDiv.css({

cursor:'wait',

top:(heightspace/2-2),

left:(widthspace/2-2)

});

}

maskDiv.fadeIn('fast', function(){

// 淡入淡出效果

$(this).fadeTo('slow', op.opacity);

})

return maskDiv;

},

unmask: function(){

var original=$(document.body);

if(this[0] && this[0]!==window.document){

original=$(this[0]);

}

original.find("> div.maskdivgen").fadeOut('slow',0,function(){

$(this).remove();

});

}

});

})();

下面是使用实例代码可供参考

代码

body{

font-size:12px;

}

(function(){

$.extend($.fn,{

mask: function(msg,maskDivClass){

this.unmask();

// 参数

var op = {

opacity: 0.8,

z: 10000,

bgcolor: '#ccc'

};

var original=$(document.body);

var position={top:0,left:0};

if(this[0] && this[0]!==window.document){

original=this;

position=original.position();

}

// 创建一个 Mask 层,追加到对象中

var maskDiv=$('

maskDiv.appendTo(original);

var maskWidth=original.outerWidth();

if(!maskWidth){

maskWidth=original.width();

}

var maskHeight=original.outerHeight();

if(!maskHeight){

maskHeight=original.height();

}

maskDiv.css({

position: 'absolute',

top: position.top,

left: position.left,

'z-index': op.z,

width: maskWidth,

height:maskHeight,

'background-color': op.bgcolor,

opacity: 0

});

if(maskDivClass){

maskDiv.addClass(maskDivClass);

}

if(msg){

var msgDiv=$('

'+msg+'
');

msgDiv.appendTo(maskDiv);

var widthspace=(maskDiv.width()-msgDiv.width());

var heightspace=(maskDiv.height()-msgDiv.height());

msgDiv.css({

cursor:'wait',

top:(heightspace/2-2),

left:(widthspace/2-2)

});

}

maskDiv.fadeIn('fast', function(){

// 淡入淡出效果

$(this).fadeTo('slow', op.opacity);

})

return maskDiv;

},

unmask: function(){

var original=$(document.body);

if(this[0] && this[0]!==window.document){

original=$(this[0]);

}

original.find("> div.maskdivgen").fadeOut('slow',0,function(){

$(this).remove();

});

}

});

})();

测试

div遮罩

关闭div遮罩

全部遮罩

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值