1. 程式人生 > 實用技巧 >js獲取網頁螢幕可視區域高度

js獲取網頁螢幕可視區域高度

document.body.clientWidth ==> BODY物件寬度
document.body.clientHeight ==> BODY物件高度
document.documentElement.clientWidth ==> 可見區域寬度
document.documentElement.clientHeight ==> 可見區域高度

看了以上程式碼,可能會有疑問說body和可見區域到底有什麼不同呢,我們在console裡執行一下會發現在不同的網頁中有不同的情況值,有的document.body.clientWidth和document.documentElement.clientWidth 的值相同,有的卻不同,原因在哪呢?

原因就是:在瀏覽器預設的情況下,body有8-10px左右的邊距,而可見區域包括了這個邊距,因此如果我們用到body{padding:0;margin:0;}來消除這種預設的情況。那麼document.body.clientWidth和document.documentElement.clientWidth 的值就會相同。

以下是相容主流瀏覽器(IE/Firefox/Chrome/Safari)獲取瀏覽器視窗可視區域(不包括滾動條)和滾動條位置的程式碼:

 1 // 獲取瀏覽器視窗的可視區域的寬度
 2 function getViewPortWidth() {
 3     return document.documentElement.clientWidth || document.body.clientWidth;
 4 }
 5  
 6 // 獲取瀏覽器視窗的可視區域的高度
 7 function getViewPortHeight() {
 8     return document.documentElement.clientHeight || document.body.clientHeight;
 9 }
10  
11 // 獲取瀏覽器視窗水平滾動條的位置
12 function getScrollLeft() {
13     return document.documentElement.scrollLeft || document.body.scrollLeft;
14 }
15  
16 // 獲取瀏覽器視窗垂直滾動條的位置
17 function getScrollTop() {
18     return document.documentElement.scrollTop || document.body.scrollTop;
19 }


網頁可見區域寬: document.body.offsetWidth (包括邊線的寬)
網頁可見區域高: document.body.offsetHeight (包括邊線的高)

網頁正文部分上: window.screenTop
網頁正文部分左: window.screenLeft


螢幕解析度的高: window.screen.height
螢幕解析度的寬: window.screen.width


螢幕可用工作區高度: window.screen.availHeight
螢幕可用工作區寬度: window.screen.availWidth

// 部分jQuery函式
$(window).height()  //瀏覽器時下視窗可視區域高度

$(document).height()    //瀏覽器時下視窗文件的高度
$(document.body).height()      //瀏覽器時下視窗文件body的高度
$(document.body).outerHeight(true) //瀏覽器時下視窗文件body的總高度 包括border padding margin
$(window).width()  //瀏覽器時下視窗可視區域寬度
$(document).width()//瀏覽器時下視窗文件對於象寬度
$(document.body).width()      //瀏覽器時下視窗文件body的高度
$(document.body).outerWidth(true) //瀏覽器時下視窗文件body的總寬度 包括border padding

HTML精確定位:scrollLeft,scrollWidth,clientWidth,offsetWidth
scrollHeight: 獲取物件的滾動高度。
scrollLeft:設定或獲取位於物件左邊界和視窗中目前可見內容的最左端之間的距離
scrollTop:設定或獲取位於物件最頂端和視窗中可見內容的最頂端之間的距離
scrollWidth:獲取物件的滾動寬度
offsetHeight:獲取物件相對於版面或由父座標 offsetParent 屬性指定的父座標的高度
offsetLeft:獲取物件相對於版面或由 offsetParent 屬性指定的父座標的計算左側位置
offsetTop:獲取物件相對於版面或由 offsetTop 屬性指定的父座標的計算頂端位置
event.clientX 相對文件的水平座標
event.clientY 相對文件的垂直座標
event.offsetX 相對容器的水平座標
event.offsetY 相對容器的垂直座標
document.documentElement.scrollTop 垂直方向滾動的值
event.clientX+document.documentElement.scrollTop 相對文件的水平座標+垂直方向滾動的量