首先再次详细解释一下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 全选 注:引入外部Js需再刷新一下页面才能执行] 

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

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?