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 相對文檔的水平座標+垂直方向滾動的量