由於本人對原生js中各種距離得應用和區分不是很好,特別總結了一下:
clientWidth是對象看到的寬度(不含邊線,即border)
scrollWidth是對象實際內容的寬度(若無padding,那就是邊框之間距離,如有padding,就是左padding和右padding之間距離)。
offsetWidth是指對象自身的寬度,整型,單位像素(含邊線,如滾動條的占用的寬,值會隨着內容的輸入而不斷改變)。
scrollHeight: 獲取對象的滾動高度。
scrollLeft:設置或獲取位於對象左邊界和窗口中目前可見內容的最左端之間的距離
scrollTop:設置或獲取位於對象最頂端和窗口中可見內容的最頂端之間的距離
scrollWidth:獲取對象的滾動寬度
offsetHeight:獲取對象相對於版面或由父坐標 offsetParent 屬性指定的父坐標的高度
offsetLeft:獲取對象相對於版面或由 offsetParent 屬性指定的父坐標的計算左側位置
offsetTop:獲取對象相對於版面或由 offsetTop 屬性指定的父坐標的計算頂端位置
易混淆點:
clientX 設置或獲取鼠標指針位置相對於當前窗口的 x 坐標,其中客戶區域不包括窗口自身的控件和滾動條。
clientY 設置或獲取鼠標指針位置相對於當前窗口的 y 坐標,其中客戶區域不包括窗口自身的控件和滾動條。
offsetX 設置或獲取鼠標指針位置相對於觸發事件的對象的 x 坐標。
offsetY 設置或獲取鼠標指針位置相對於觸發事件的對象的 y 坐標。
screenX 設置或獲取獲取鼠標指針位置相對於用戶屏幕的 x 坐標。
screenY 設置或獲取鼠標指針位置相對於用戶屏幕的 y 坐標。
x 設置或獲取鼠標指針位置相對於父文檔的 x 像素坐標(亦即相對於當前窗口)。
y 設置或獲取鼠標指針位置相對於父文檔的 y 像素坐標(亦即相對於當前窗口)。
document.documentElement.scrollTop 垂直方向滾動的值
event.clientX+document.documentElement.scrollTop 相對文檔的水平座標+垂直方向滾動的量
以上主要指IE之中,FireFox差異如下:
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height(需要提一下:CSS中的margin屬性,與clientWidth、offsetWidth、clientHeight、offsetHeight均無關)
(可以在自己的電腦上自測:console)
網頁可見區域寬: document.body.clientWidth;
document.body.clientWidth+'px'
1366px
網頁可見區域高: document.body.clientHeight;
document.body.clientHeight;
1589
網頁可見區域寬: document.body.offsetWidth (包括邊線的寬);
document.body.offsetWidth
1339
網頁可見區域高: document.body.offsetHeight (包括邊線的寬);
document.body.offsetHeight
1589
網頁正文全文寬: document.body.scrollWidth;
document.body.scrollWidth
1349
網頁正文全文高: document.body.scrollHeight;
document.body.scrollHeight
1632
網頁被卷去的高: document.body.scrollTop;
網頁被卷去的左: document.body.scrollLeft;
網頁正文部分上: window.screenTop;
網頁正文部分左: window.screenLeft;
屏幕分辨率的高: window.screen.height;
window.screen.height
768
屏幕分辨率的寬: window.screen.width;
window.screen.width
1366
屏幕可用工作區高度: window.screen.availHeight;
window.screen.availHeight
728
屏幕可用工作區寬度:window.screen.availWidth;
window.screen.availWidth
1366