Jquery实现遮罩层的⽅法
本⽂实例讲述了Jquery实现遮罩层的⽅法。分享给⼤家供⼤家参考。具体如下:
1、假设#main为页⾯body中的最外层Div标签
2、背景被遮罩后,显⽰的弹出窗(默认是不显⽰的,所包含的CSS这⾥就不贴了):
<!-- Status Bar Start -->
<div id="warning-dialog" class="status warning center-top no-display">
<p class="closestatus"><a href="javascript:$().hideWarningDialog()" title="Close">x</a></p>
<div class="clear"></div>
<p><img src="images/icon_warning.png" alt="Warning" /><span id="warning-dialog-detail">Attention!</span></p>
<div class="closes">
<input type="hidden" id="refresh-after-warning" value="false" />
<input name="" type="image" src="images/niu_qd.jpg" align="absmiddle" class="button_jl" onclick="javascript:$().hideWarningDialog()" /> </div>
</div>
<!-- Status Bar End -->
3、在script.js中定义遮罩函数以及弹出窗操作函数,当然script.js,jquery.js需要包含在html页⾯中:
var warning_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" : "solid 3px #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();
} else
warning_dialog.hide();
}
// 显⽰遮罩效果
$.fn.mask = function() {
this.unmask();
// 参数
var op = {
bgcolor : '#ccc',
z : 5100,
opacity : 0.3
};
var position = {
top : 0,
left : 0
};
var original = $("#main");
// 创建⼀个 Mask 层,追加到对象中
var maskDiv = $('<div class="maskdivgen"> </div>');
maskDiv.appendTo(original);
var maskWidth = original.width();
var maskHeight = original.height();
maskDiv.css({
position : 'absolute',
top : p,
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);
});
return maskDiv;
}
// 去除遮罩效果
$.fn.unmask = function() {
var original = $("#main");
if (this[0] && this[0] !== window.document) {
original = $(this[0]);
}
original.find("> div.maskdivgen").fadeOut('fast', 0, function() {
$(this).remove();
});
}
本例中使⽤main标签获得⾼度,宽度,如果不想通过标签获得页⾯⾼度和宽度,可通过如下⽅式获得/* 当前页⾯⾼度 */
function pageHeight() {
jquery在一个元素后追加标签return document.body.scrollHeight;
}
/* 当前页⾯宽度 */
function pageWidth() {
return document.body.scrollWidth;
}
4、调⽤遮罩层:
<script type="text/javascript">
function init() {
<?php
if ($msg != "⽤户名输⼊错误") {
>
$.fn.showWarningDialog("<?php echo $msg; ?>", "false");
<?php
}
>
}
init();
};
</script>
希望本⽂所述对⼤家的jQuery程序设计有所帮助。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论