原生js的弹出层且其内的窗口居中


Posted in Javascript onMay 14, 2014
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<meta charset="UTF-8"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
<META NAME="Author" CONTENT=""> 
<META NAME="Keywords" CONTENT=""> 
<META NAME="Description" CONTENT=""> 
<style type="text/css"> 
* 
{ 
padding:0px; 
margin:0px; 
} 
#Idiv 
{ 
width:900px; 
height:auto; 
position:absolute; 
z-index:1000; 
border:2px solid #ffffff; 
background:#ffffff; 
} 
</style> </HEAD> 
<body> 
<div id="Idiv" style="display:none;"> 
<a href="javascript:void(0)" onclick="closeDiv()">点击关闭层</a> 
<br/>document.documentElement 的区别<br/>document.documentElement 的区别 
</div> 
<div><a href="javascript:void(0)" id="show" onclick="show()">点击打开弹出层!</div> 
</body> 
<script langue="javascript"> 
function show() 
{ 
var Idiv=document.getElementById("Idiv"); 
Idiv.style.display="block"; 
//以下部分要将弹出层居中显示 
Idiv.style.left=(document.documentElement.clientWidth-Idiv.clientWidth)/2+document.documentElement.scrollLeft+"px"; 
//alert(document.body.scrollTop) 
var aa_scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; 
Idiv.style.top=(document.documentElement.clientHeight-Idiv.clientHeight)/2+aa_scrollTop+"px"; 
//此处出现问题,弹出层左右居中,但是高度却不居中,显示在上部分,导致一 //部分不可见,于是暂时在下面添加margin-top 

//以下部分使整个页面至灰不可点击 
var procbg = document.createElement("div"); //首先创建一个div 
procbg.setAttribute("id","mybg"); //定义该div的id 
procbg.style.background ="#000000"; 
procbg.style.width ="100%"; 
procbg.style.height ="100%"; 
procbg.style.position ="fixed"; 
procbg.style.top ="0"; 
procbg.style.left ="0"; 
procbg.style.zIndex ="500"; 
procbg.style.opacity ="0.6"; 
procbg.style.filter ="Alpha(opacity=70)"; 
//取消滚动条 
document.body.appendChild(procbg); 
document.body.style.overflow ="auto"; 
//以下部分实现弹出层的拖拽效果(如果想要弹出层内的div移动,把以下注销去掉即可) 
/* 
var posX; 
var posY; 
Idiv.onmousedown=function(e) 
{ 
if(!e) e = window.event; //IE 
posX = e.clientX - parseInt(Idiv.style.left); 
posY = e.clientY - parseInt(Idiv.style.top); 
document.onmousemove = mousemove; 
} 
document.onmouseup =function() 
{ 
document.onmousemove =null; 
} 
function mousemove(ev) 
{ 
if(ev==null) ev = window.event;//IE 
Idiv.style.left = (ev.clientX - posX) +"px"; 
Idiv.style.top = (ev.clientY - posY) +"px"; 
}*/ 
} 
function closeDiv() //关闭弹出层 
{ 
var Idiv=document.getElementById("Idiv"); 
var mybg = document.getElementById("mybg"); 
document.body.removeChild(mybg); 
Idiv.style.display="none"; 
document.body.style.overflow ="auto";//恢复页面滚动条 
//document.getElementById("mybg").style.display="none"; 
} 
</script> 
</HTML> 
//改变上面的弹出层,做自己的一个loading加载的功能。判断页面是否加载完毕,完毕后隐藏loading.gif 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>New Document </title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 
<body onload="subSomething()"> 

</body> 
<script type="text/ecmascript"> 
function show(addressImg, img_w, img_h) { 
//得到页面高度 
var h = (document.documentElement.scrollHeight > document.documentElement.clientHeight) ? document.documentElement.scrollHeight : document.documentElement.clientHeight; 
//得到页面宽度 
var w = (document.documentElement.scrollWidth > document.documentElement.clientWidth) ? document.documentElement.scrollWidth : document.documentElement.scrollWidth; 
var procbg = document.createElement("div"); //首先创建一个div 
procbg.setAttribute("id", "mybg"); //定义该div的id 
procbg.style.background = "#555"; 
procbg.style.width = "100%"; 
procbg.style.height = "100%"; 
procbg.style.position = "fixed"; 
procbg.style.top = "0"; 
procbg.style.left = "0"; 
procbg.style.zIndex = "500"; 
procbg.style.opacity = "0.6"; 
procbg.style.filter = "Alpha(opacity=70)"; 
//取消滚动条 
document.body.appendChild(procbg); 
document.body.style.overflow = "auto"; 

var pimg = document.createElement("img"); //创建一个img 
pimg.setAttribute("id", "bg_img"); //定义该div的id 
pimg.setAttribute("src", addressImg); //定义该div的id 
var img_w = (w - img_w) / 2; 
var img_h = (h - img_h) / 2; 
pimg.style.top = img_h + "px"; 
pimg.style.left = img_w + "px"; 
pimg.style.position = "fixed"; 
pimg.style.opacity = "0.9"; 
document.getElementById("mybg").appendChild(pimg); 
} 
function closeDiv() //关闭弹出层 
{ 
var mybg = document.getElementById("mybg"); 
document.body.removeChild(mybg); 
document.body.style.overflow = "auto";//恢复页面滚动条 
//document.getElementById("mybg").style.display="none"; 
} 
show('loading/loading3.gif', '100', '100'); 
document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法. 
function subSomething() { 
if (document.readyState == "complete") { //当页面加载状态为完全结束时进入 
closeDiv(); 
} 
} 
</script> 
</html>
Javascript 相关文章推荐
jquery实现submit提交表单
Feb 03 Javascript
浅谈javascript中call()、apply()、bind()的用法
Apr 20 Javascript
JS实现仿QQ效果的三级竖向菜单
Sep 25 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
Sep 27 Javascript
Node.js实现兼容IE789的文件上传进度条
Sep 02 Javascript
JS实现拖拽的方法分析
Dec 20 Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 Javascript
详解前后端分离之VueJS前端
May 24 Javascript
ES6模块化的import和export用法方法总结
Aug 08 Javascript
JavaScript递归算法生成树形菜单
Aug 15 Javascript
ES6 class的应用实例分析
Jun 27 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
js 获取页面高度和宽度兼容 ie firefox chrome等
May 14 #Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
May 14 #Javascript
JavaScript函数获取事件源的小例子
May 14 #Javascript
javascript单引号和双引号的区别和处理
May 14 #Javascript
document.write的几点使用心得
May 14 #Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 #Javascript
用jQuery toggleClass 实现鼠标移上变色
May 14 #Javascript
You might like
php中文本数据翻页(留言本翻页)
2006/10/09 PHP
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
PHP 写文本日志实现代码
2010/05/18 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
php实现复制移动文件的方法
2015/07/29 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
python线程、进程和协程详解
2016/07/19 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
Python3常用内置方法代码实例
2019/11/18 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
详解Flask前后端分离项目案例
2020/07/24 Python
文明学生标兵事迹
2014/01/21 职场文书
怎么写自荐书范文
2014/02/12 职场文书
会计岗位职责模板
2014/03/12 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
领导干部对照检查材料
2014/08/24 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
天堂的孩子观后感
2015/06/11 职场文书
2015国庆节宣传语
2015/07/14 职场文书