分類  >  Web前端 >

如何樣讓彈出的DIV顯示在網頁的中間

tags:    時間:2013-12-10 10:30:39
怎麼樣讓彈出的DIV顯示在網頁的中間?

怎麼樣讓彈出的DIV顯示在網頁的中間?   

2010-10-09 17:23:12 |  分類: ASP.NET+SQL+HTML | 字型大小   訂閱

<!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=gb2312" />
<title>無標題文檔</title>
<style>
* {margin:0;}
body {font-size:12px;}
#container div{margin-top:5px;}
#select_city h3{float:left;}
#main_city,#all_province {clear:both;}
#main_city div,#all_province div{width:600px;clear:left;}
#main_city h4,#all_province h4{float:left;display:inline;font-size:16px;}
#main_city div span,#all_province div span{margin:0 10px;cursor:pointer;font-size:12px;}
#float_lay{width:200px;height:120px;border:1px #d1d1d1 solid;position:absolute;background:#fff;z-index:999;display:none;}
</style>
<script type="text/javascript">
//彈出層
function openLayer(objId,conId){
var arrayPageSize = getPageSize();//調用getPageSize()函數
var arrayPageScroll = getPageScroll();//調用getPageScroll()函數
if (!document.getElementById("popupAddr")){

//創建彈出內容層
var popupDiv = document.createElement("div");

//給這個元素設置屬性與樣式
popupDiv.setAttribute("id","popupAddr")
popupDiv.style.position = "absolute";
popupDiv.style.border = "1px solid #ccc";
popupDiv.style.background = "#fff";
popupDiv.style.zIndex = 99;

 

//創建彈出背景層
var bodyBack = document.createElement("div");
bodyBack.setAttribute("id","bodybg")
bodyBack.style.position = "absolute";
bodyBack.style.width = "100%";
bodyBack.style.height = (arrayPageSize[1] + 35 + 'px');
bodyBack.style.zIndex = 98;
bodyBack.style.top = 0;
bodyBack.style.left = 0;

bodyBack.style.filter = "alpha(opacity=50)";
bodyBack.style.opacity = 0.5;
bodyBack.style.background = "#ddf";

//實現彈出(插入到目標元素之後)
var mybody = document.getElementById(objId);
insertAfter(popupDiv,mybody);//執行函數insertAfter()
insertAfter(bodyBack,mybody);//執行函數insertAfter()

}

//顯示背景層
document.getElementById("bodybg").style.display = "";
//顯示內容層
var popObj=document.getElementById("popupAddr")
popObj.innerHTML = document.getElementById(conId).innerHTML;
popObj.style.display = "";
//讓彈出層在頁面中垂直左右居中(統一)
//popObj.style.width = "600px";
//popObj.style.height = "400px";
//popObj.style.top = arrayPageScroll[1] + (arrayPageSize[3] - 35 - 400) / 2 + 'px';
//popObj.style.left = (arrayPageSize[0] - 20 - 600) / 2 + 'px';
//讓彈出層在頁面中垂直左右居中(個性)
var arrayConSize=getConSize(conId)
popObj.style.top = arrayPageScroll[1] + (arrayPageSize[3] - arrayConSize[1]) / 2-50 + 'px';
popObj.style.left = (arrayPageSize[0] - arrayConSize[0]) / 2 -30 + 'px';
}
//獲取內容層內容原始尺寸
function getConSize(conId){
var conObj=document.getElementById(conId)
conObj.style.position = "absolute";
conObj.style.left=-1000+"px";
conObj.style.display="";
var arrayConSize=[conObj.offsetWidth,conObj.offsetHeight]
conObj.style.display="none";
return arrayConSize;
}
function insertAfter(newElement,targetElement){//插入
var parent = targetElement.parentNode;
if(parent.lastChild == targetElement){
parent.appendChild(newElement);
}
else{
parent.insertBefore(newElement,targetElement.nextSibling);
}
}
//獲取滾動條的高度
function getPageScroll(){
var yScroll;
if (self.pageYOffset) {
yScroll = self.pageYOffset;
} else if (document.documentElement && document.documentElement.scrollTop){
yScroll = document.documentElement.scrollTop;
} else if (document.body) {
yScroll = document.body.scrollTop;
}

arrayPageScroll = new Array('',yScroll)
return arrayPageScroll;
}
//獲取頁面實際大小
function getPageSize(){
var xScroll,yScroll;

if (window.innerHeight && window.scrollMaxY){
xScroll = document.body.scrollWidth;
yScroll = window.innerHeight + window.scrollMaxY;
} else if (document.body.scrollHeight > document.body.offsetHeight){
sScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
} else {
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;
}

var windowWidth,windowHeight;
//var pageHeight,pageWidth;
if (self.innerHeight) {
windowWidth = self.innerWidth;
windowHeight = self.innerHeight;
} else if (document.documentElement && document.documentElement.clientHeight) {
windowWidth = document.documentElement.clientWidth;
windowHeight = document.documentElement.clientHeight;
} else if (document.body) {
windowWidth = document.body.clientWidth;
windowHeight = document.body.clientHeight;
}

var pageWidth,pageHeight
if(yScroll < windowHeight){
pageHeight = windowHeight;
} else {
pageHeight = yScroll;
}
if(xScroll < windowWidth) {
pageWidth = windowWidth;
} else {
pageWidth = xScroll;
}
arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
return arrayPageSize;
}
//關閉彈出層
function closeLayer(){
document.getElementById("popupAddr").style.display = "none";
document.getElementById("bodybg").style.display = "none";
return false;
}
</script>
</head>
<body>
<input name="test" id="test" value="風格設置" type="button" onclick="openLayer('test','test_con')" />
<!--第一個彈出層的內容-->
<div id="test_con" style="display:none" title="包含彈出層的內容的容器">
<div id="tab">
<div id="tabtop">
<div id="tabtop-L"><strong>風格設置</strong></div>
<div id="tabtop-R" onclick="closeLayer()"><strong>關閉</strong></div>
</div>
<div id="tabcontent">此處顯示內容</div>
</div>
</div>
<br>
<br>
<br>
<input name="Input" id="test2" value="風格提示" type="button" onclick="openLayer('test2','test_con2')" />
<!--第二個彈出層的內容-->
<div id="test_con2" style="display:none" title="包含彈出層的內容的容器">
<div id="tab2">
<div id="tabtop2">
<div id="tabtop-L2"><strong style="color:blue">設置提示</strong></div>
<div id="tabtop-R2" onclick="closeLayer()"><strong style="color:red">關閉</strong></div>
</div>
<div id="tabcontent2" style="color:#dff;background:#000">
<p>此處顯示提示內容"
<p>提示1
<p>提示2
</div>
</div>
</div>
<br>
<br>
<br>
<input name="Input" id="test3" value="風格演示" type="button" onclick="openLayer('test3','test_con3')" />
<!--第三個彈出層的內容-->
<div id="test_con3" style="display:none" title="包含彈出層的內容的容器">

推薦閱讀文章

Bookmark the permalink ,來源:互聯網