原生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 相关文章推荐
javascript 年月日联动实现核心代码
Dec 21 Javascript
javascript变量作用域使用中常见错误总结
Mar 26 Javascript
js拖拽一些常见的思路方法整理
Mar 19 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
Apr 25 Javascript
简介JavaScript中的unshift()方法的使用
Jun 09 Javascript
vue底部加载更多的实例代码
Jun 29 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
Sep 01 Javascript
angular 用Observable实现异步调用的方法
Dec 27 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
May 06 Javascript
javascript实现智能手环时间显示
Sep 18 Javascript
vue实现树状表格效果
Dec 29 Vue.js
用javascript实现倒计时效果
Feb 09 Javascript
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
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
用PHP伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
PHP 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
仿百度输入框智能提示的js代码
2013/08/22 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
2013/11/26 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
[54:51]Ti4 冒泡赛第二轮LGD vs C9 3
2014/07/14 DOTA
Python自动连接ssh的方法
2015/03/07 Python
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
Python常用算法学习基础教程
2017/04/13 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
婚前保证书
2014/04/29 职场文书
违章停车检讨书
2014/10/21 职场文书
护士个人总结范文
2015/02/13 职场文书
写给女朋友的检讨书
2015/05/06 职场文书