弹出层和等待窗口 博客分类: JavaScript javascript
程序员文章站
2024-03-07 09:58:50
...
<!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:9pt;} #container div{margin-top:6px;} #select_city h3{float:left;} #main_city,#all_province {clear:both;} #main_city div,#all_province div{width:588px;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 9px;cursor:pointer;font-size:14px;} #float_lay{width:220px;height:122px;border:1px #787878 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; 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> <script type="text/javascript"> //对“拖动点”定义:onMousedown="StartDrag(this)" onMouseup="StopDrag(this)" onMousemove="Drag(this)"即可 var move=false,oldcolor,_X,_Y; function StartDrag(obj){ //定义准备拖拽的函数 obj.setCapture(); //对当前对象的鼠标动作进行跟踪 oldcolor=obj.style.backgroundColor; obj.style.background="#999"; move=true; //获取鼠标相对内容层坐标 var parentwin=document.getElementById("popupAddr"); _X=parentwin.offsetLeft-event.clientX _Y=parentwin.offsetTop-event.clientY } function Drag(obj){ //定义拖拽函数 if(move){ var parentwin=document.getElementById("popupAddr"); parentwin.style.left=event.clientX+_X; parentwin.style.top=event.clientY+_Y; } } function StopDrag(obj){ //定义停止拖拽函数 obj.style.background=oldcolor; obj.releaseCapture(); //停止对当前对象的鼠标跟踪 move=false; } </script> </head> <body> <input name="Input" id="test" value="点击弹出层" type="button" onclick="openLayer('test','test_con')" /> <div id="test_con" style="display:none"> <div id="tab" style="padding:8px;"> <div id="tabtop"> <div id="tabtop-L"><strong>层的标题在这里</strong></div> <div id="tabtop-R" onclick="closeLayer()"><strong>[关闭层]</strong></div> <div> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td width="200 height="0"> <strong style="color:red;font-size:20px">处理中...请等待...</strong> <marquee direction="right" scrollamount="3"> <table style="font-size:1px;width:50px;height:20px;"> <tr> <td bgcolor="#e5fee5"></td> <td bgcolor="#caf7ca"></td> <td bgcolor="#8feb90"></td> </tr> </table> </marquee> </td> </tr> </table> </div> </div> <div id="tabcontent">内容写在这里。。</div> </div> </div> <br> <br> <input name="Input" id="test3" value="可拖动层" type="button" onclick="openLayer('test3','test_con3')" /> <div id="test_con3" style="display:none"> <div id="tab3" style="width:360px;height:200px;background:#black;"> <div id="tabtop3"> <div id="tabtop-L3" onMousedown="StartDrag(this)" onMouseup="StopDrag(this)" onMousemove="Drag(this)"><strong style="color:red;font-size:20px">可拖动层的标题</strong></div> <div id="tabtop-R3" onclick="closeLayer()"><strong>[关闭层]</strong></div> <div> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td width="200 height="0"> <strong style="color:red;font-size:20px">处理中...请等待...</strong> <marquee direction="right" scrollamount="3"> <table style="font-size:1px;width:50px;height:20px;"> <tr> <td bgcolor="#e5fee5"></td> <td bgcolor="#caf7ca"></td> <td bgcolor="#8feb90"></td> </tr> </table> </marquee> </td> </tr> </table> </div> </div> <div id="tabcontent3" style="padding:8px">欢迎回来</div> </div> </div> </body> </html>
推荐阅读
-
弹出层和等待窗口 博客分类: JavaScript javascript
-
js正则表达式的学习和使用 博客分类: javascript 正则表达式VBScript工作
-
js正则表达式的学习和使用 博客分类: javascript 正则表达式VBScript工作
-
去掉用window.close()来关闭IE浏览器弹出的提示确认框 博客分类: JavaScript
-
获取页面位置和div位置 博客分类: JavaScript scrolltop
-
去掉用window.close()来关闭IE浏览器弹出的提示确认框 博客分类: JavaScript
-
Session cookie、持久化Cookie和P3P头在跨域访问时候的行为 博客分类: JavaScript Session cookie持久化CookieP3P头跨域访问
-
浏览器跨域和安全访问问题 博客分类: JavaScript 跨域
-
javascript pattern只允许数字,英文字母和一些特殊字符 博客分类: Java编程PHP编程Web前端开发 HTMLWebJavaScriptjQuery
-
javascript pattern只允许数字,英文字母和一些特殊字符 博客分类: Java编程PHP编程Web前端开发 HTMLWebJavaScriptjQuery