1. 程式人生 > >JavaScript中的坐標

JavaScript中的坐標

瀏覽器 標準模式 bottom 尺寸 tle ren 所有 滾動條 lin

基本概念

視口坐標:相對於瀏覽器左上角或相對於框架頁<iframe>元素的坐標,不包括瀏覽器的“外殼”。

文檔坐標:相對於文檔左上角的坐標

除IE8及更早的版本,Window對象的pageXOffset和pageYOffset屬性在所有的瀏覽器中提供滾動條的位置。

IE和其他瀏覽器可以通過scrollLeft和scrollTop屬性來獲得滾動條的位置。標準模式下,通過document.documentElement來獲取這些屬性,怪異模式下,通過document.body來獲取這些屬性

Example:

//獲取滾動條偏移量
function getScrollOffsets(w){
    w=w||window;
   var d=w.document; if(w.pageXOffset!=null){ return { x:w.pageXOffset, y:w.pageYOffset }; } if(document.compatMode=="CSS1Compat"){ return{ x:d.documentElement.scrollLeft, y:d.documentElement.scrollTop }; } return { x:d.body.scrollLeft, y:d.body.scrollTop }; }

查詢元素的幾何尺寸

getBoundingClientRect方法,返回一個有left.right,top,bottom屬性的對象,left,top表示元素左上角的坐標,right,bottom表示元素右下角的坐標,返回元素在視口坐標的位置,返回的坐標包含元素的邊框和內邊距,不包含外邊距,非實時的,在用戶滾動或改變瀏覽器窗口大小時不會更新它們。

HTML元素的offsetLeft和offsetTop屬性也能返回元素的X和Y坐標(若該元素是已定位的子元素,則它返回相對於父元素的坐標,可通過offsetParent來獲取它的父元素),offsetWidth和offsetHeight返回它的屏幕尺寸。

Document對象的的elementFromPoint方法返回指定位置的一個元素,傳遞x坐標和y坐標

滾動

Window對象的scrollTop()方法,接受一個點的X和Y坐標,並作為滾動條偏移量來設置他們

scrollby()和scroll()和scrollTo()類似,但是它的參數是相對的

可通過getBoundingClientRect計算元素位置,並轉換為文檔坐標,再調用scrollTo()移動到元素所在的位置。但有更簡單的辦法,scrollIntoView(),默認參數為true,放在視口的上邊緣處,設置為false時,放在視口的下邊緣處

JavaScript中的坐標