Div遮罩 Div居中 Div渐隐渐现

直接上代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
<title>页面</title>
 
<style type="text/css">
 
* { margin:0px; 
 
padding:0px;}
 
#cover{position:absolute;top:0;left:0;z-index:100;visibility:hidden;background:#666;}
 
.shadow{position:absolute;top:0;left:0;z-index:200;visibility:hidden;}
 
#a_open,a_close{cursor:hand;cursor:pointer; color:red;}
 
</style>
 
</head>
 
<body>
 
<div id="cover" onClick="DecOpacity();"></div>
 
<a id="a_open" href="#" onClick="show('cover','contBox');return false;">来点我</a>
 
<div id="contBox" class="shadow" style="background:#FFF; width:400px; height:200px; padding:12px 9px;">
 
这里是内容 <a id="a_close" href="#" onClick="DecOpacity();return false;">关闭</a>
 
</div>
 
</body>
 
</html>
 
<script type="text/javascript">
 
function getPageSize(){
 


var xScroll, yScroll;
 


if (window.innerHeight && window.scrollMaxY) { 

xScroll = window.innerWidth + window.scrollMaxX;
 
yScroll = window.innerHeight + window.scrollMaxY;
 
} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
 
xScroll = document.body.scrollWidth;
 
yScroll = document.body.scrollHeight;
 
} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
 
xScroll = document.body.offsetWidth;
 
yScroll = document.body.offsetHeight;
 
}
 


var windowWidth, windowHeight;
 


// console.log(self.innerWidth);
 
// console.log(document.documentElement.clientWidth);
 
if (self.innerHeight) { // all except Explorer
 
if(document.documentElement.clientWidth){
 
windowWidth = document.documentElement.clientWidth; 
 
} else {
 
windowWidth = self.innerWidth;
 
}
 
windowHeight = self.innerHeight;
 
} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
 
windowWidth = document.documentElement.clientWidth;
 
windowHeight = document.documentElement.clientHeight;
 
} else if (document.body) { // other Explorers
 
windowWidth = document.body.clientWidth;
 
windowHeight = document.body.clientHeight;
 
} 



// for small pages with total height less then height of the viewport
 
if(yScroll < windowHeight){
 
pageHeight = windowHeight;
 
} else { 
 
pageHeight = yScroll;
 
}
 
// console.log("xScroll " + xScroll)
 
// console.log("windowWidth " + windowWidth)
 
// for small pages with total width less then width of the viewport
 
if(xScroll < windowWidth){ 

pageWidth = xScroll;
 
} else {
 
pageWidth = windowWidth;
 
}
 
// console.log("pageWidth " + pageWidth)
 
arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
 
return arrayPageSize;
 
}
 
var pageS=new Array();
 
pageS=getPageSize();
 
var contBox=document.getElementById("contBox");
 
var cover=document.getElementById("cover");
 
var tmpAlpha=0.0;
 
var tmpAlphaN=0.5;
 
function show(cover,id){
 
var objCover=document.getElementById(cover);
 
var objId=document.getElementById(id);
 
var scrollW = pageS[2]; 
 
var scrollH = pageS[3];   
 
var T=(scrollH-objId.offsetHeight)/2+document.body.scrollTop||document.documentElement.scrollTop;
 
var L=(scrollW-objId.offsetWidth)/2+document.body.scrollLeft||document.documentElement.scrollLeft;
 
objCover.style.width = scrollW+"px";
 
objCover.style.height= scrollH+"px";
 
objCover.style.visibility="visible";
 
objId.style.visibility="visible";
 
objId.style.top=T+"px";
 
objId.style.left=L+"px";
 
AddOpacity();
 
}
 
function hide(cover,id){
 
var objCover=document.getElementById(cover);
 
var objId=document.getElementById(id);
 
objCover.style.visibility="hidden";
 
objId.style.visibility="hidden";
 
}
 
function AddOpacity(){
 
contBox.style.opacity=tmpAlpha;
 
contBox.style.filter="alpha(opacity="+tmpAlpha*100+")";
 
cover.style.opacity=tmpAlpha;
 
cover.style.filter="alpha(opacity="+tmpAlpha*60+")";
 
tmpAlpha+=0.05;
 
if(tmpAlpha>=0.5){
 
cover.style.opacity = 0.5;
 
}
 
if(tmpAlpha>=1){
 
contBox.style.opacity = 1;
 
return;}else{
 
setTimeout("AddOpacity()",20);}
 
}
 
function DecOpacity(){
 
contBox.style.opacity=tmpAlphaN;
 
contBox.style.filter="alpha(opacity="+tmpAlphaN*100+")";
 
cover.style.opacity=tmpAlphaN;
 
cover.style.filter="alpha(opacity="+tmpAlphaN*60+")";
 
tmpAlphaN-=0.05;
 
if(tmpAlphaN<=0){
 
contBox.style.opacity = 0;
 
contBox.style.visibility="hidden";
 
cover.style.visibility="hidden";
 
tmpAlpha=0.0;
 
tmpAlphaN=0.5;
 
//clearTimeout()
 
return;}else{
 
setTimeout("DecOpacity()",20);}
 
}
 
</script>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值