javascript中常用坐標屬性offset、scroll、client


     今天在學習js的時候覺得這個問題比較容易搞混,所以自己畫了一個簡單的圖,並且用js控制台里面輸出測試了下,便於理解。

1、在文檔(document)對象里面用

scrollWidth/Height:獲取對象的滾動寬度(滾動條可以滾動寬度,相當於整個頁面的總寬度的樣子--網頁正文全寬)

scrollLeft/Top:設置或獲取位於對象左邊界和窗口中目前可見內容的最左端之間的距離(頁面利用滾動條滾動到右邊時,隱藏在滾動條左邊的頁面寬度---頁面被卷去左邊)

 
2、在節點對象里面用:
 
offsetLeft/Top :獲取對象相對於版面(css里面沒有進行定位,則offsetParent取值為根元素進行計算)或由 offsetParent 屬性指定的父坐標的計算左側位置(當有css定位時,當前對象相對與offsetParent元素的距離)
 
offsetWidth/Height ( width+padding+border)
獲取當前對象的寬度。
style.width也是當前對象的寬度(width+padding+border)。
區別:1)style.width返回值除了數字外還帶有單位px;
           2)如對象的寬度設定值為百分比寬度,則無論頁面變大還是變小,style.width都返回此百分比,而offsetWidth則返回在不同頁面中對象的寬度值而不是百分比值;
           3)如果沒有給 HTML 元素指定過 width樣式,則 style.width 返回的是空字符串;
 
offsetLeft :
當前對象到其上級層左邊的距離。
不能對其進行賦值.設置對象到其上級層左邊的距離請用style.left屬性。
style.left當前對象到其上級層左邊的距離。
區別:1)style.left返回值除了數字外還帶有單位px;
           2)如對象到其上級層左邊的距離設定值為百分比,style.left返回此百分比,而offsetLeft則返回到其上級層左邊的距離的值;
           3)如果沒有給 HTML 元素指定過 left樣式,則 style.left返回的是空字符串;
注意:如果上級層為body,由於IE、FF對padding、margin的解釋不一樣所以要明確規定處理不是下列的區別就不成立了。
IE   1)如果Div的上級層是body,而div與body之間有個div,如body->div->divo;divo的offsetTop=div的padding+margin+boder;
       2)如果Div的上級層是body,如body>divo;divo的offsetTop=div的padding+margin+boder;
             這divo的offsetTop=divo的margin >body.padding則為divo的margin,否則為body.padding誰大是誰?
FF  上述兩種情況:offsetTop=margin+padding ;
(IE與FF中的body默認padding為10)在IE6.0 FF3.6.13
 
clientWidth/Height: 
獲取對象可見內容的寬度,不包括滾動條,不包括邊框;
 
clientLeft/Top:
 獲取對象的border寬度
 
 
3、事件里面用的

event.clientX 相對文檔的水平座標

event.clientY 相對文檔的垂直座標

     event.offsetX 相對容器的水平坐標
     event.offsetY 相對容器的垂直坐標
 
4、屏幕的:
     window.screenTop 網頁正文部分上
     window.screenLfet 網頁正文部分左
 
     window.screen.height  屏幕分辨律的高
     window.screen.left  屏幕分辨律的寬
 
     window.screen.availHeight  屏幕可用工作區的高度
     window.screen.availWidth  屏幕可用工作區的寬度
 
     document.documentElement.scrollTop 垂直方向滾動的值
 
 
網頁可見區域寬: 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;
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM