元素位置及寬度的計算總節

2022-07-17 05:21:07 字數 1849 閱讀 5197

1.dom.getboundingclientrect().left/top/right/bottom/height/width;

返回元素相對於瀏覽器視窗的相對位置及自身的寬高。

ie中只能獲取到元素的left,top,bottom,right的屬性,而後面的現代瀏覽器還能獲取到元素的width和height.

chrome

firefox (gecko)

internet explorer

opera

safari

1.03.0 (1.9)

4.0(yes)

4.0這裡要注意的是,bottom是元素底部相對於視窗頂部的距離,而不是像css裡面position的bottom相對於視窗底部,同理,rihgt屬性是元素最右邊相對於視窗左邊的距離。

2.dom.scrolltop/scrollleft;

包含滾動條的元素目前滾動到的位置距離元素頂端的距離。

3.dom.scrollwidth/scrollheight;

元素width+padding的寬度/元素height+padding的高度。這裡的width/height指顯示出來是寬和可滾動部分的寬。

4.dom.clientwidth/clientheight;

元素可視區域的width+padding/元素可視區域的height+padding;不包含可滾動的部分。

5.dom.offsetwidth/offsetheight;

6.dom.offsetparent;

. offsetparent定義:offsetparent就是距離該子元素最近的進行過定位的父元素(position:absolute  relative fixed),如果其父元素中不存在定位則offsetparent為:body元     素

. 根據定義分別存在以下幾種情況

元素自身有fixed定位,父元素不存在定位,則offsetparent的結果為null(firefox中為:body,其他瀏覽器返回為null)

元素自身無fixed定位,且父元素也不存在定位,offsetparent為元素

元素自身無fixed定位,且父元素存在定位,offsetparent為離自身最近且經過定位的父元素

元素的offsetparent是null

瀏覽器相容性

在以webkit為核心的瀏覽器上,如果元素是隱藏的(該元素或者上級元素style.display='none')或者元素自身style.position='fixed',那麼就會返回null。

在ie(9)上如元素style.position='fixed',該屬性就會返回null。(然而display:none不影響這個瀏覽器)

當元素本身經過絕對定位或相對定位,且父級元素無經過定位的元素時,ie7-瀏覽器下,offsetparent是

//獲取元素的縱座標

1 function gettop(e)

//獲取元素的橫座標

1 function getleft(e)

7.screenx/screeny;

滑鼠相對於螢幕左上角的水平和垂直距離;

8.clientx/clienty;

滑鼠相對於瀏覽器視窗左上角的水平和垂直距離;

9.pagex/pagey;

滑鼠距離頁面原點/頂端左上角的水平和垂直距離;相容性:ie不支援(在ie中使用event.x,event.y來代替),其他高階遊覽器支援。

10.offsetx/offsety;

滑鼠距離該元素(滑鼠所在元素)左上角的水平和垂直距離。

不定寬度元素排版及子元素固定寬高比問題

什麼情況需要做自適應呢?最常見的情況就是父元素的寬度不固定造成子元素排版改變。我們根據不同的情況,做不同的適應。父級元素寬度改變時,子元素大小也隨著改變,子元素的寬高參照同一標準計算的單位,例如vw以可視頁面寬度計算,rem以html的font size計算等,效果如下 父級元素寬度改變,子元素的大...

JS中獲取元素的尺寸及位置

js中獲取元素的尺寸及位置 1.clientwidth a 作用 獲取元素視覺化寬度 b 注意 clientwidth width padding 2.clientheight a 作用 獲取元素視覺化高度 3.offsetwidth a 作用 獲取元素寬度 b 注意 offsetwidth wid...

jQuery獲取頁面及個元素高度 寬度

獲取瀏覽器顯示區域 可視區域 的高度 w indo w h eigh t 獲取瀏覽 器顯示區 域 可視 區域 的 寬度 wi ndow he ight 獲 取瀏覽器 顯示區域 可視區 域 的寬 度 window width 獲取頁面的文件高度 d ocum ent hei ght 獲取 頁面的文 檔...