1. 程式人生 > >offsetwidth/clientwidth的區別

offsetwidth/clientwidth的區別

1.

2.
clientWidth/scrollWidth/offsetWidth <wbr>小小總結一小下

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均無關)


網頁可見區域寬: document.body.clientWidth;
網頁可見區域高: document.body.clientHeight;

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

網頁正文全文寬: document.body.scrollWidth;
網頁正文全文高: document.body.scrollHeight;

網頁被捲去的高: document.body.scrollTop;
網頁被捲去的左: document.body.scrollLeft;

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

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

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