document.documentElement与document.body
2015-09-22 10:11
288 查看
在写遮罩层让弹出的提示框居中时,用到了clientHeight与clientWidth,代码一开始我是这样写的:
问题来了,提示框有居中但不是在当前的屏幕居中,而是在整个界面居中(获取的值与scrollHeight的值相同,包括了滚动条卷起的高度),不知道问题出在哪里,以前也是这样写都完全没有问题,后来查阅了资料,发现了问题,问题出在document.body.clientHeight与document.documentElement.clientHeight上。为了兼容我们一般都这么写
我把body放在前面,条件成了会直接去获取body的高度,而不是当前可见区域屏幕的高度,之前误以为两句代码获取的高度是一样的。
实际上:
ocument.body.clientWidth ==>body对象的宽度
document.body.clientHeight ==> body对象的高度
document.documentElement.clientWidth ==> 可见区域宽度(一屏幕宽度)
document.documentElement.clientHeight ==> 可见区域高度(一屏幕高度)
就代码改成
获取到的高度就正常了,提示框就可以显示在当前一屏中心位置。
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
获取到的高度就正常了,提示框就可以显示在当前一屏中心位置。
相关文章推荐
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- 5个常见可用性错误和解决方案
- 如何优雅地处理前端异常?
- js可突破windows弹退效果代码
- JSP脚本漏洞面面观
- 使用BAT一句话命令实现快速合并JS、CSS
- js显示当前星期的起止日期的脚本
- 爆炸式的JS圆形浮动菜单特效代码
- js select常用操作控制代码
- 从jsp发送动态图像
- 原生js结合html5制作小飞龙的简易跳球
- js 页面模块自由拖动实例
- js实现小鱼吐泡泡在页面游动特效
- js 提交和设置表单的值
- PHP VBS JS 函数 对照表
- PHP+JS实现大规模数据提交的方法
- 仿51JOB的地区选择效果(可选择多个地区)
- js身份证验证超强脚本