- <!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>
- * {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="Input" 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>
- <form name='f'>
- name:<input type="text" name="n">
- pwd:<input type="password" name="pwd">
- <input type="submit">
- </form>
- <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="包含弹出层的内容的容器">
- <div id="tab3" style="width:300px;height:180px;background:#fee">
- <div id="tabtop3">
- <div id="tabtop-L3"><strong style="color:red;font-size:20px">风格演示</strong></div>
- <div id="tabtop-R3" onclick="closeLayer()"><strong>关闭</strong></div>
- </div>
- <div id="tabcontent3">此处显示内容</div>
- </div>
- </div>
- </body>
- </html>
更加不错的弹出层,相对居中
最新推荐文章于 2021-06-10 02:20:47 发布