Javascript實(shí)例教程:取得HTML元素的真正位置與大小
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
使用HTML元素的style.left,style.top,style.width,style.height以及width,height屬性,都不能獲得元素的真正位置與大小,這些屬性取出來(lái)的都是原來(lái)的設(shè)置值,例如width="500",那么通過(guò)document.getElementById(“table1″).width取出來(lái)的值永遠(yuǎn)都是500,而不管這個(gè)表格是否已經(jīng)被撐大了;同時(shí),通過(guò)document.getElementById(“table1″).style.left獲得的值是空的,因?yàn)闆](méi)有設(shè)置這個(gè)值。 要取得HTML元素的真正位置與大小,只能通過(guò)offsetLeft,offsetTop,clientWidth,clientHeight,offsetWidth,offsetHeight屬性,其中offsetLeft與offsetTop分別是當(dāng)前元素在父元素內(nèi)的相對(duì)左坐標(biāo)與相對(duì)頂坐標(biāo),要取得絕對(duì)坐標(biāo),還需要用到offsetParent屬性,改屬性取得當(dāng)前元素的父元素。要取得絕對(duì)坐標(biāo),就必須依次獲得父元素的相對(duì)坐標(biāo),直到父元素為空,然后把所有相對(duì)坐標(biāo)加起來(lái),得到當(dāng)前元素的絕對(duì)坐標(biāo)。 最常見(jiàn)的是日期選擇框,當(dāng)點(diǎn)擊按鈕時(shí)彈出日期選擇框總是在按鈕的旁邊,這個(gè)選擇框的坐標(biāo),就是根據(jù)按鈕的坐標(biāo)以及按鈕的offsetWidth,offsetHeight來(lái)取得的。 —————————————————————————————————————————– 但是需要注意的是,這兩個(gè)屬性所儲(chǔ)存的數(shù)值并不是該元素相對(duì)整個(gè)瀏覽器畫(huà)布的絕對(duì)位置,而是相對(duì)于其父元素位置的相對(duì)位置,也就是說(shuō)這兩個(gè)數(shù)值得到的是以其元素左上角為(0,0)點(diǎn)從而計(jì)算出的數(shù)值。那么如何得到一個(gè)HTML元素的絕對(duì)位置呢,前一陣找到的一個(gè)比較好的函數(shù),分享一下: //獲取元素的縱坐標(biāo) 其原理就是利用HTMLElement.offsetParent屬性,如果當(dāng)前元素的父元素不是空(null),則在原本的offsetTop基礎(chǔ)上加上當(dāng)前的offsetTop,然后繼續(xù)獲取父元素的父元素的offsetTop,再將其加之,最終遞歸出該元素相對(duì)于整個(gè)瀏覽器畫(huà)布的縱坐標(biāo)。橫坐標(biāo)亦然。 該文章在 2012/5/30 0:24:22 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |