Jquery实现遮罩层的方法
本文实例讲述了Jquery实现遮罩层的方法。分享给大家供大家参考。具体如下:
1、假设#main为页面body中的最外层Div标签
2、背景被遮罩后,显示的弹出窗(默认是不显示的,所包含的CSS这里就不贴了):
<!--StatusBarStart--> <divid="warning-dialog"class="statuswarningcenter-topno-display"> <pclass="closestatus"><ahref="javascript:$().hideWarningDialog()"title="Close">x</a></p> <divclass="clear"></div> <p><imgsrc="images/icon_warning.png"alt="Warning"/><spanid="warning-dialog-detail">Attention!</span></p> <divclass="closes"> <inputtype="hidden"id="refresh-after-warning"value="false"/> <inputname=""type="image"src="images/niu_qd.jpg"align="absmiddle"class="button_jl"onclick="javascript:$().hideWarningDialog()"/> </div> </div> <!--StatusBarEnd-->
3、在script.js中定义遮罩函数以及弹出窗操作函数,当然script.js,jquery.js需要包含在html页面中:
varwarning_dialog=$('#warning-dialog'),
warning_dialog_detail=$('#warning-dialog-detail'),
refresh_after_warning=$('#refresh-after-warning');
//显示遮罩层
$.fn.showWarningDialog=function(detail,refresh){
if($isIE6){
$(".menu_select").hide();
}
$.fn.mask();
warning_dialog_detail.html(detail);
refresh_after_warning.val(refresh);
warning_dialog.css({
"position":"absolute",
"left":"50%",
"top":"50%",
"margin-left":"-250px",
"margin-top":"-100px",
"border":"solid3px#ccc",
"z-index":6000
});
warning_dialog.show();
}
//去除遮罩层
$.fn.hideWarningDialog=function(){
if($isIE6){
$(".menu_select").show();
}
$.fn.unmask();
if(refresh_after_warning.val()=="true"){
$('#main').showLoading();
location.reload(true);
}else
warning_dialog.hide();
}
//显示遮罩效果
$.fn.mask=function(){
this.unmask();
//参数
varop={
bgcolor:'#ccc',
z:5100,
opacity:0.3
};
varposition={
top:0,
left:0
};
varoriginal=$("#main");
//创建一个Mask层,追加到对象中
varmaskDiv=$('<divclass="maskdivgen"> </div>');
maskDiv.appendTo(original);
varmaskWidth=original.width();
varmaskHeight=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
});
maskDiv.fadeIn('fast',function(){
//淡入淡出效果
$(this).fadeTo('fast',op.opacity);
});
returnmaskDiv;
}
//去除遮罩效果
$.fn.unmask=function(){
varoriginal=$("#main");
if(this[0]&&this[0]!==window.document){
original=$(this[0]);
}
original.find(">div.maskdivgen").fadeOut('fast',0,function(){
$(this).remove();
});
}
本例中使用main标签获得高度,宽度,如果不想通过标签获得页面高度和宽度,可通过如下方式获得
/*当前页面高度*/
functionpageHeight(){
returndocument.body.scrollHeight;
}
/*当前页面宽度*/
functionpageWidth(){
returndocument.body.scrollWidth;
}
4、调用遮罩层:
<scripttype="text/javascript">
functioninit(){
<?php
if($msg!="用户名输入错误"){
?>
$.fn.showWarningDialog("<?phpecho$msg;?>","false");
<?php
}
?>
}
window.onload=function(){
init();
};
</script>
希望本文所述对大家的jQuery程序设计有所帮助。