首页 > web前端 > js教程 > 正文

JQuery 遮罩层实现(mask)实现代码_jquery

WBOY
发布: 2016-05-16 18:36:52
原创
1147 人浏览过

其中有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();
});
}
});
})();

下面是使用实例代码可供参考
代码
复制代码 代码如下:


<头>
<风格>
正文{
字体大小:12px;
}

<脚本 src="http://img.jb51.net/jslib/jquery/jquery-1.3.2.js" type="text/javascript">

(function(){
$.extend($.fn,{
mask: function(msg,maskDivClass){
this.unmask();
// 参数
var op = {
不透明度: 0.8,
z: 10000,
bgcolor: '#ccc'
};
var 原始=$(document.body)
var 位置={top:0,left:0};
if(this[0] && this[0]!==window.document){
original=this
position=original.position() ;
}
//创建一个 Mask 层,追加到对象中
var maskDiv=$('
 
'); .appendTo(original);
var maskWidth=original.outerWidth();
if(!maskWidth){
maskWidth=original.width()
}
var maskHeight=original.
if(!maskHeight){
maskHeight=original.height();
}
maskDiv.css({
位置: '绝对',
顶部: position.top,
左:position.left,
'z-index':op.z,
宽度:maskWidth,
高度:maskHeight,
'背景颜色':op .bgcolor,
不透明度: 0
})
if(maskDivClass){
maskDiv.addClass(maskDivClass)
}
if(msg){
var msgDiv =$('
');
msgDiv.appendTo(maskDiv);
var widthspace=(maskDiv.width()-msgDiv.width()); =(maskDiv.height()-msgDiv.height());
msgDiv.css({
光标:'等待',
顶部:(heightspace/2-2),
左: (widthspace/2-2)
});
}
maskDiv.fadeIn('fast', function(){
//淡入淡出效果
$(this).fadeTo( '慢', 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遮罩
全部遮光罩 ;

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!