document.body.scrollWidth、document.documentElement.scrollWidth系列宽高值对比
来源:互联网 发布:日本娱乐圈的黑暗知乎 编辑:程序博客网 时间:2024/06/06 02:35
最近深入研究了一下body.scrollWidth、document.documentElement.scrollWidth等等类似的一系列浏览器宽高的值,清晰总结了一下,还是通过代码的方式说明问题:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> body{border: 10px solid red;margin: 0;padding: 0;} #one{ min-width: 900px;} #one div{ border: 1px solid red ;margin-left: 20px;background-color: yellow;width: 300px;height:400px;;display: inline-block} </style></head><body><div id="one"> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div> <div>fdsagfdgsdf</div></div><script> console.log(screen.width); //即是window.screen.width,电脑屏幕的宽度,仅与电脑屏幕大小有关,与其他无关 console.log(screen.height); //即是window.screen.height,电脑屏幕的高度,仅与电脑屏幕大小有关,与其他无关 console.log(window.screen.availWidth); //电脑屏幕宽度(screen.width)中可用于显示浏览器的最大宽度(这里考虑减去电脑屏幕下方工具栏的宽度) console.log(window.screen.availHeight); //电脑屏幕高度中可用于显示浏览器的最大高度 console.log(window.screenTop); //浏览器窗口距离电脑屏幕上边界的距离 console.log(window.screenLeft); //浏览器窗口距离电脑屏幕左边界的距离 console.log("---------------------------------------------------------------------------------------------------------------------------"); console.log(window.innerWidth); //网页正文的内部宽度,即网页正文的可视宽度,即在浏览器上能看见的部分的宽度,如果该可视区域包含了滚动条(这里不是说滚动条可以滑动网页的宽度,而是单纯滚动条这个组件的宽度),该宽度就是可视页面加上滚动条组件的宽度 console.log(window.innerHeight); //网页正文的内部高度,即网页正文的可视高度,即在浏览器上能看见的部分的高度,滚动条处同理。 console.log(window.outerWidth); //浏览器窗口的外部宽度 console.log(window.outerHeight); //浏览器窗口的外部高度 console.log("---------------------------------------------------------------------------------------------------------------------------"); console.log(window.pageYOffset); //需要网页存在滚动条才可以,存在竖向滚动条时,网页正文向下滚动一段距离n px,该值即为n console.log(window.pageXOffset); //同理,无滚动条值为0,存在横向滚动条时,网页正文(注意是正文,不是滚动条)向右滚动一段距离n px,该值即为n console.log(document.body.scrollTop); //与上一对值相同(滚动条位置) console.log(document.body.scrollLeft); console.log(document.documentElement.scrollTop); //与上一对值相同(与上一对都是获得滚动条位置,但是存在兼容问题,具体与html文件头的<DOCTYPE ...>有关,上一对值为0的时候这一对显示正常,这一对为0的时候上一对值显示正常) console.log(document.documentElement.scrollLeft); console.log("---------------------------------------------------------------------------------------------------------------------------"); console.log(document.documentElement.scrollWidth); //整个网页的宽度,即整个给用户观看的网页部分的宽度(无横向滚动条时即为网页宽度,有滚动条则加上滚动条可以滚动部分网页的宽度) console.log(document.documentElement.scrollHeight); //整个网页的高度(如果有body{border:10px solid red;},该边界宽也算进去) console.log(document.body.scrollWidth); //与上一对值相同 console.log(document.body.scrollHeight); console.log("---------------------------------------------------------------------------------------------------------------------------"); console.log(document.documentElement.offsetWidth); //可视区域的宽度,但是不包含滚动条组件的十几px像素,同document.documentElement.clientWidth(如果有body{border:10px solid red;},该边界宽也算进去) console.log(document.documentElement.offsetHeight); //整个网页的高度,同document.body.scrollHeight(如果有body{border:10px solid red;},该边界宽也算进去) console.log(document.body.offsetWidth); //与上一对值相同 console.log(document.body.offsetHeight); console.log("---------------------------------------------------------------------------------------------------------------------------"); console.log(document.documentElement.clientWidth); //页面可视宽度,但是不包含滚动条组件的十几px像素(如果有body{border:10px solid red;},该边界宽也算进去) console.log(document.documentElement.clientHeight); //可视区域高度,document.documentElement 实际上就是 <html> 元素,只不过显示的是可见的部分,即浏览器窗口大小(网页无滚动条时与window.innerHeight同值) console.log(document.body.clientWidth); //与上一对值意义完全不同,这是body的宽度,即审查元素时body元素的宽度,但是不包含边线,例如body{border:10px solid red;},这边界的宽度是不会算在里面的 console.log(document.body.clientHeight); //body的高度,即审查元素时body元素的宽度(理同)</script></body></html>
这其中要注意的一点是document.documentElement.***和document.body.***之间的区别,一定要做好区别,前者是对标准模式下的IE和其他浏览器而言,后者是对于怪异模式下的浏览器而言的。这里有一个兼容性良好的例子——检测网页滚动到底部的计算:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>滚动到网页底部判断</title></head><body><div id="main"> <p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p> <p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p> <p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p> <p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p> <p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p> <p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p> <p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p> <p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p> <p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p> <p>1111111111111111</p><p>1111111111111111</p><p>1111111111111111</p><p>2222222222222222222222222222222222222222</p></div><script> window.onscroll = function() { console.log(h+" "+yy().y+" "+yy().yscroll); if(yy().y + yy().yscroll == h){ console.log('滚动到网页工底部啦!!!!!!!!!!!!!'); } }; /*查询窗口视口尺寸 和 滚动条滚动位置*/ var yy = function(){ /*除了IE8以及更早的版本以外,其他浏览器都能用*/ if(window.innerWidth != null){ return { y:window.innerHeight, yscroll:window.pageYOffset } } var d = window.document; /*对标准模式下的IE(或者任何浏览器)*/ if(document.compatMode == 'CSS1Compat'){ return { y:d.documentElement.clientHeight, yscroll:d.documentElement.scrollTop } }else{ /*对怪异模式下的浏览器*/ return { y:d.body.clientHeight, yscroll:d.body.scrollTop } } }; /*获得整个文档高度(可视与不可视高度之和)*/ var h = (function(){ var d = window.document; if(document.compatMode == 'CSS1Compat'){ return document.documentElement.offsetHeight; }else { return d.body.offsetHeight; } }());</script></body></html>
阅读全文
0 0
- document.body.scrollWidth、document.documentElement.scrollWidth系列宽高值对比
- 再谈 document.documentElement 与 document.body 的 scrollWidth、offsetWidth、clientWidth
- document.body.clientWidth、scrollWidth、scrollTop;
- document.body.clientWidth、scrollWidth、scrollTop;
- document.body.clientWidth、scrollWidth、scrollTop;
- document.body.clientWidth/clientHeight/scrollWidth/scrollTop
- document.body.scrollwidth 网页高度宽度的写法
- js获取浏览器基本信息:document.body.clientWidth/clientHeight/scrollWidth/scrollTop。
- js获取浏览器基本信息:document.body.clientWidth/clientHeight/scrollWidth
- js获取浏览器基本信息:document.body.clientWidth/clientHeight/scrollWidth/scrollTop
- js获取浏览器基本信息:document.body.clientWidth/clientHeight/scrollWidth/scrollTop
- js获取浏览器基本信息:document.body.clientWidth/clientHeight/scrollWidth/scrollTop。
- js获取浏览器基本信息:document.body.clientWidth/clientHeight/scrollWidth/scrollTop。
- js获取浏览器基本信息:document.body.clientWidth/clientHeight/scrollWidth/scrollTop。
- js获取浏览器基本信息:document.body.clientWidth/clientHeight/scrollWidth/scrollTop。
- document.documentElement与document.body
- document.body 和 document.documentElement
- document.documentElement和document.body
- VBA入门的基础语句
- Hibernate连接Oracle 的 Date字段时间时分秒丢失问题
- Lintcode——两数组的交
- struts2.5配置时action无法访问错误
- koa源码
- document.body.scrollWidth、document.documentElement.scrollWidth系列宽高值对比
- 5 在springboot中使用ElasticsearchTemplate 操作ElasticSearch(本机和远程服务器)
- web安全注意点和应对方案
- Intellij Idea 创建 Maven 工程
- Android Volley框架定制PostUploadRequest上传文件(图片)
- marsboard-a20-ubuntu的配置V1.0(分色排版)
- 用WordNet实现中文情感分析
- 菜鸟学git的基本命令及常见错误
- [Unity&JSON]如何在同一个JSON文档中存入多个不同类型的数据