`

JS弹出居中的DIV的代码

 
阅读更多
一直都在想怎么样使弹出的DIV能在任何时候都是居中显示的,刚开始的时候是用CSS样式直接定义好层的位置,但是当页面很长的时候,或是浏览器窗口大小不是固定的时候就不能正确的显示,所以只好用JS来控制DIV的显示位置。
<script src="http://img.jb51.net/imgby/baidu336.js" type="text/javascript"></script>
<script src="http://img.jb51.net/imgby/baidu234.js" type="text/javascript"></script>
<!-- NEWSZW_HZH_BEGIN-->

首先再次详细解释一下JS中窗口和网页的几种尺寸属性的含义
document.body.clientWidth(网页可见区域宽):是指浏览器显示网页的区域宽度,不包括浏览器的边框宽度和垂直滚动条的宽度。大小随着浏览器的窗口大小而改变。
document.body.clientHeight(网页可见区域高):是指浏览器显示网页的区域所能看到的高度,不包括浏览器的边框宽度和水平滚动条的高度。大小随着浏览器的窗口大小而改变。
document.body.scrollTop(网页被卷去的高):是指拉动垂直滚动条时网页上面被地址栏及菜单栏遮盖着的部分的高。
document.body.scrollLeft(网页被卷去的左):是指拉动水平滚动条时网页左面被左边线遮盖着的部分的宽。
现在我们来分析一下程序该如何实现:
第一步我们要实现的是使层在弹出时绝对居中不去考虑是否有滚动条的情况。
1.计算出层距离显示区域左边和上边的位置
注意:divId指的是所要居中的层,divId.clientWidth为其宽度!@
var divId = document.getElementById("xxx");
var v_left=(document.body.clientWidth-divId.clientWidth)/2;
var v_top=(document.body.clientHeight-divId.clientHeight)/2;
2.把得到的值重新赋给DIV的left和top属性
divId.style.left=v_left;
divId.style.top=v_top;
说明:divId为DIV标签的id值
这样这个层就是居中显示的了。
第二步我们要实现的是使在拖动滚动条的情况下弹出的层也能居中。
其实很简单我们只要把拖动的宽度和高度加到前面计算出来的左边距和上边距中就OK 了。
v_left+=document.body.scrollLeft;
v_top+=document.body.scrollTop;
2.把得到的值重新赋给DIV的left和top属性
divId.style.left=v_left;
divId.style.top=v_top;
这样显示出来就是居中的了。
完整代码如下:

点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]


如 果你想在拖动滚动条或是窗口重置大小时,层也能居中显示的话,可以在body的属性里面加上onresize="divcenter();"和 onscroll="divcenter();"就OK了,不过可能显示的效果不是很好,特别是在拖动滚动条时的效果可能是一擅一擅的,忒不爽。

分享到:
评论

相关推荐

    js+CSS实现弹出居中背景半透明div层的方法.docx

    js+CSS实现弹出居中背景半透明div层的方法.docx

    Jquery弹出div层窗口以及div屏幕居中,背景滤镜效果,div拖拽效果

    Jquery弹出div层窗口以及div屏幕居中, 背景滤镜效果, div拖拽效果 在IE和FireFox测试通过!

    JavaScript+div 半透明弹出层

    JavaScript+div 半透明弹出层,function openNewDiv(_id) { var m = "mask"; if (docEle(_id)) document.removeChild(docEle(_id)); if (docEle(m)) document.removeChild(docEle(m)); // 新激活图层 var newDiv...

    Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法

    这两天要用到正好练练手,比想象中碰到的问题要多,比如: ie6背景透明 ie6居中显示 还有对js对象的理解 openID=显示按钮,conID=需要显示的div,closeID=关闭按钮 解决了: 1.可以遮挡ie6下的select元素 但是在ie6下div...

    js+CSS实现弹出居中背景半透明div层的方法

    主要介绍了js+CSS实现弹出居中背景半透明div层的方法,涉及javascript操作弹出div层的操作技巧,非常具有实用价值,需要的朋友可以参考下

    【JavaScript源代码】JS如何实现在弹出窗口中加载页面.docx

    JS如何实现在弹出窗口中加载页面  弹出窗口,加载页面。弹出窗口初始位置为居中。可在关闭窗口时,回调主页面按钮。要求jquery。 效果演示  主要代码(时间仓促,没加注释,不过代码很简单,就是创建几个元素拼在...

    自制JQuery弹出层插件 PopupDiv-v1.0

    JQuery弹出层插件 PopupDiv-v1.0 通用自定义弹出层插件 by maxcoold 2009-2-29 bug 提交至:maxcoold@126.com --------------------------------------------- 功能说明: 本插件基于jquery 1.31下编写,请尽量在...

    jQuery 弹出层 浮动遮罩层 提示框 并随页面滚动而滚动

    如:我想要&lt;div id="ok"&gt;这里是弹出浮动遮罩层&lt;/div&gt; 并随页面滚动而滚动 只要调用 $('#ok').showModel();这个方法就可以了 调用$('#ok').closeModel();就可以关闭层了 这个插件还有个好处是自动隐藏select控件,...

    js弹出的对话窗口永远保持居中显示

    代码如下: &lt;!DOCTYPE html&gt; &lt;html lang=”en” xmlns=”http://www.w3.org/1999/xhtml”&gt; &lt;head&gt; &lt;meta charset=”utf-8″ /&gt; &lt;title&gt;&lt;/title&gt; &lt;style type=”text/css”&gt; ....

    JQuery&CSS;&CSS;+DIV实例大全.rar

    4.jQuery超炫淡入淡出效果DIV渐变居中弹出框插件下载 5.jquery黑色+蓝色风格DIV提示框示例 6.一款jQuery+DIV居中淡入淡出信息提示框示例 7.一款jQuery可拖动提示窗插件(对话框Dialog插件) 8.一款基于jQuery...

    jquery弹出层鼠标点击弹出层可浮动在屏幕滚动

    jquery弹出层当鼠标点击文字或图片弹出层,弹出层浮动在屏幕上可以随浏览器上下滚动,弹出层可自动居中在页面中间

    jquery.easydrag.handler.beta2.js

    首先我的弹窗div在弹出的时候是默认在页面正中的,但是要使用这个插件被拖动的div就要使 用”position:absolute”的属性定位,这让我们的居中非常困难。解决思路:在触发弹窗之前用js获取当前屏 幕的分辨率然后将...

    js实现弹窗居中的简单实例

    在一些页面中,我们总会遇到一些弹窗不居中的时候,还要根据浏览器的大小来调整弹窗的弹出位置, 之前我也遇到这样的问题,现在我把我知道的呈现给大家 css样式 .windowBox{ width:500px; } .mid-tanBox{ ...

    完全纯css实现div自适应居中兼容IE7 Chrome FireFox

    3. 对于弹出层,各位针对自己的情况设置z-index,这里我没有设置了 4. IE6没有测试,抱歉= = DOM结构 复制代码代码如下: &lt;html&gt; &lt;head&gt; &lt;link rel=”stylesheet” type=”text/css” href=”style...

    DIV+CSS+JS 变灰弹出层

    浮动层居中的对话框效果演示 浮动层居中的对话框效果演示 HTML { HEIGHT: 100% } BODY { HEIGHT: 100% } BODY { FONT-SIZE: 14px; FONT-FAMILY: Tahoma, Verdana, sans-serif } DIV.neat-dialog-cont { Z-INDEX: ...

    JS如何实现在弹出窗口中加载页面

    弹出窗口初始位置为居中。可在关闭窗口时,回调主页面按钮。要求jquery。 效果演示 首先,演示主窗口两个按钮作用。然后,演示关闭弹出窗口时,调用主窗口的两个按钮。 主要代码(时间仓促,没加注释,不过代码很...

    弹出有遮罩的拖动层,简单模拟select(未做界面)

    弹出有半透明遮罩的div层,可拖动。弹出层在窗口自适应居中,简单用div和li模拟下select的效果。

Global site tag (gtag.js) - Google Analytics