javascript获取浏览器的高度和宽度(documentElement,clientHeight,offsetHeight,scrollHeight,scrollTop,offsetParent,offsetY,innerHeight)

javascript获取浏览器的高度和宽度(documentElement,clientHeight,offsetHeight,scrollHeight,scrollTop,offsetParent,offsetY,innerHeight)_第1张图片

document.body.clientHeight:

IE、chrome、firefox:

body对象高度(height+padding),body的默认高度为0

 

document.body.clientWidth:

IE、chrome、firefox

body对象的宽度(width+padding),body的默认宽度是浏览器宽度减去body的maring

 

document.documentElement.clientHeight/document.documentElement.clientWidth:

IE、chrome、firefox

浏览器可是区域的高度/宽度

 

document.body.scrollHeight 、 document.body.scrollWidth

IE、firefox:

scrollHeight:body里边内容的实际高度,加上body的padding值。  

scrollWidth:body的scrollWidth的最小值是浏览器的宽度减去body的左右maring的值,如果横向有滚动条,那么就是内容的实际宽度

<style type="text/css">
    body{  margin-top: 20px; padding-top: 20px;}
    div{ float: left;  width: 300px; height: 100px; margin: 0 auto; background: darkred; overflow: auto;}
</style>
console.log("body scrollHeight : " + document.body.scrollHeight); //它的值就是100+20,body.scrollHeight的最小值是0,body的scrollWidth的最小值是浏览器的宽度减去body的左右maring的值

chrome(document.body.scrollWidth / document.body.scrollHeight):

浏览器里边内容的的实际宽度(包含的滚动条将要滚动的宽度),比如当前窗口的宽度是500px,然后浏览器的滚动条还可以再滚动300px,那么在chrome下,scrollWidth的值为800px。

浏览器里边内容的的实际高度(包含的滚动条将要滚动的高度),比如当前窗口的高度是500px,然后浏览器的滚动条还可以再滚动300px,那么在chrome下,scrollHeight的值为800px。再比如当前窗口就是500px,里边没有内容,但是此时chrome浏览器的document.body.scrollHeight也是500px。

总结一下:对于document.body.scrollHeidht/width,chrome浏览器的算法是针对浏览器里边的内容,而firefox和IE是针对body里边的内容,所以有时候会有很大的区别。比如body里边没有内容,窗口的高度是500px,那么此时在IE或FF下很有可能scrollHeight是0,而在chrome下是该浏览器的真实高度,即500px。

 

document.documentElement.scrollHeight:

chrome中的算法是针对浏览器中实际内容的宽和高度,比如

<style type="text/css">
    body{ margin-top: 20px; }
    div{ float: left;  width: 300px; height: 100px; margin: 0 auto; background: darkred; overflow: auto;}
</style>
//document.documentElement.scrollHeight的值是120,而FF和IE的值则是浏览器里边所有的内容的值,意思就是如果内容小于窗口的高度,那么就是窗口的高度,如果内容大于窗口的高度,那么就是所有内容的高度,包括body的magin
<div></div>

普通元素的scrollHeight和scrollWidth,oDiv.scrollHeight说的就是div中所有内容的真是高度,IE、FF、Chrome是一样的,不一样的话一般就是它们里边的元素默认样式不一样大小,比如都是div里边的p标签,但是p的默认高度是不一样的,这种情况下有可能造成它们的值不一样

 

你可能感兴趣的:(javascript获取浏览器的高度和宽度(documentElement,clientHeight,offsetHeight,scrollHeight,scrollTop,offsetParent,offsetY,innerHeight))