您的位置:首页 - 教程 - jQuery - 正文
jquery遮罩层的一种方式
效果体验:http://hovertree.com/texiao/jquery/10.htm

本示例使用jquery插件方式,完整代码如下:


<html>
<head>
<style>
body {
font-size: 12px;
}
</style>
<script src="http://hovertree.com/ziyuan/jquery/jquery-1.11.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
(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=$('<div class="maskdivgen">&nbsp;</div>');
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=$('<div style="position:absolute;border:#6593cf 1px solid; padding:2px;background:#ccca"><div style="line-height:24px;border:#a3bad9 1px solid;background:white;padding:2px 10px 2px 10px">'+msg+'</div></div>');
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();
});
}
});
})();
</script>
<title>jquery遮罩层- 何问起</title>
</head>
<body style="width:100%">

何问起 测试
<div id="testhovertree" style="width:500px;height:200px; border:black 1px solid;">
<a href="http://hovertree.com/hvtart/bjae/o5so5i9x.htm">原文</a>
<a href="http://hovertree.com">首页</a> <a href="http://hovertree.com/texiao/">特效</a> </div>
<a href="#" onclick="$('#testhovertree').mask('DIV层遮罩何问起')">div遮罩</a>
<a href="#" onclick="$('#testhovertree').unmask()">关闭div遮罩</a>
<a href="#" onclick="$(document).mask('全屏遮罩何问起').click(function () { $(document).unmask() })">全部遮罩</a>
</body>
</html>

评论: