您的位置:首页 > Web前端

document.documentElement与document.body

2015-09-22 10:11 288 查看
在写遮罩层让弹出的提示框居中时,用到了clientHeight与clientWidth,代码一开始我是这样写的:

var heightHit = document.body.clientHeight || document.documentElement.clientHeight;
var widthHit = document.body.clientWidth || document.documentElement.clientWidth


问题来了,提示框有居中但不是在当前的屏幕居中,而是在整个界面居中(获取的值与scrollHeight的值相同,包括了滚动条卷起的高度),不知道问题出在哪里,以前也是这样写都完全没有问题,后来查阅了资料,发现了问题,问题出在document.body.clientHeight与document.documentElement.clientHeight上。为了兼容我们一般都这么写

document.body.clientHeight || document.documentElement.clientHeight;


我把body放在前面,条件成了会直接去获取body的高度,而不是当前可见区域屏幕的高度,之前误以为两句代码获取的高度是一样的。

实际上:

ocument.body.clientWidth ==>body对象的宽度

document.body.clientHeight ==> body对象的高度

document.documentElement.clientWidth ==> 可见区域宽度(一屏幕宽度)

document.documentElement.clientHeight ==> 可见区域高度(一屏幕高度)

就代码改成

document.documentElement.clientHeight || document.body.clientHeight;
document.documentElement.clientWidth || document.body.clientWidth


获取到的高度就正常了,提示框就可以显示在当前一屏中心位置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  前端开发 js