為什么window.innerHeight和document.body.clientHeight的值會不一樣呢?
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<script type="text/javascript">
document.write(window.innerHeight+"<br/>"+window.innerWidth+"<br/>");
document.write(document.body.clientHeight+"<br/>"+document.body.clientWidth);
</script>
</body>
</html>
2017-02-24
其實原因是:
滾動條?。?!
你打開縮小窗口使得橫縱都出現(xiàn)滾動條,會發(fā)現(xiàn)window.inner寬高總是比document.body.client寬高(firefox是document.documentElement.client寬高)多一個固定值(這個和各個瀏覽器有關(guān)),比如是站也10px差距吧。
你把窗口拉大到滾動條消失(由于網(wǎng)頁一般不止一屏那么長,所以縱向?qū)嶒灢缓米?,可以選百度或谷歌首頁),再查詢,會發(fā)現(xiàn)二者一致了。
所以呢你這innerHeight實際是比clientHeight多了個滾動條的height。
2016-12-12
使用document.documentElement.clientHeight
在compactMode為CSS1Compat時,document.documentElement.clientHeight = window.innerHeight
2015-11-06
確實不一樣為什么呢
2014-11-18
是有區(qū)別的前者是獲取HTML的寬高,后者是獲取body的寬高,分為兩種寫法就是為了解決兼容性問題,某些瀏覽器只認(rèn)這兩種的一種