原生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 的addEventListener()及attachEvent()区别分析
May 21 Javascript
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
Nov 04 Javascript
jquery无缝向上滚动实现代码
Mar 29 Javascript
页面载入结束自动调用js函数示例
Sep 23 Javascript
使用jQuery时Form表单元素ID和name命名大忌
Mar 06 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
Nov 15 Javascript
Javascript闭包与函数柯里化浅析
Jun 22 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
Oct 17 Javascript
React数据传递之组件内部通信的方法
Dec 31 Javascript
ExtJs整合Echarts的示例代码
Feb 27 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
Mar 03 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
Feb 05 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
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
python中plot实现即时数据动态显示方法
2018/06/22 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
python的scipy实现插值的示例代码
2019/11/12 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
关于爱国的标语
2014/06/24 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
员工自我工作评价
2015/03/06 职场文书
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL