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

 更新时间:2014年05月14日 17:16:37   作者:  
弹出层内含窗口且居中,在本例使用原生js来实现,与网上的有所不一样,大家不妨参考下
复制代码 代码如下:

<!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实现外溢动态爱心的效果的示例代码

    这篇文章主要为大家介绍了如何利用JavaScript制作出简单的外溢动态爱心的效果,文中的示例代码讲解详细,感兴趣的小伙伴快跟随小编一起动手试一试
    2022-03-03
  • JavaScript 中的数据类型Number

    JavaScript 中的数据类型Number

    这篇文章主要介绍了JavaScript 中的数据类型Number,Number 类型使用 IEEE 754 格式表示整数和浮点值,下文相关详细资料介绍,需要的小伙伴可以参考一下
    2022-04-04
  • JavaScript实现列出数组中最长的连续数

    JavaScript实现列出数组中最长的连续数

    这篇文章主要介绍了JavaScript实现列出数组中最长的连续数的方法及使用,需要的朋友可以参考下
    2014-12-12
  • JS设计模式之单例模式(一)

    JS设计模式之单例模式(一)

    这篇文章主要为大家详细介绍了JS设计模式之单例模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • js实现Select列表内容自动滚动效果代码

    js实现Select列表内容自动滚动效果代码

    这篇文章主要介绍了js实现Select列表内容自动滚动效果的方法,涉及javascript简单递归调用遍历select及时间函数的相关使用技巧,需要的朋友可以参考下
    2015-08-08
  • JavaScript使用Promise实现分批处理接口请求

    JavaScript使用Promise实现分批处理接口请求

    当我们在实际项目中遇到需要批量发起上百条接口请求怎么办呢,本文就来为大家介绍一下JavaScript如何使用Promise实现分批处理接口请求,需要的小伙伴可以参考一下
    2023-11-11
  • 基于JS实现新闻列表无缝向上滚动实例代码

    基于JS实现新闻列表无缝向上滚动实例代码

    当新闻较多,并且空前有限的时候,使用滚动是一个不错的选择,本章节就通过代码实例介绍一下如何实现此效果,对无缝向上滚动实例代码感兴趣的朋友一起学习吧
    2016-01-01
  • 如何使用JavaScript检测空闲的浏览器选项卡

    如何使用JavaScript检测空闲的浏览器选项卡

    这篇文章主要介绍了如何使用JavaScript检测空闲的浏览器选项卡,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • javascript实现带下拉子菜单的导航菜单效果

    javascript实现带下拉子菜单的导航菜单效果

    这篇文章主要介绍了javascript实现带下拉子菜单的导航菜单效果的方法,涉及javascript操作页面元素与样式的相关技巧,需要的朋友可以参考下
    2015-05-05
  • layer 关闭指定弹出层的例子

    layer 关闭指定弹出层的例子

    今天小编就为大家分享一篇layer 关闭指定弹出层的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09

最新评论