使用HTML元素的style.left,style.top,style.width,style.height以及width,height屬性,都不能獲得元素的真正位置與大小,這些屬性取出來的都是原來的設置值,例如<table? id="table1" width="500">,那么通過document.getElementById("table1").width取出來的值永遠都是500,而不管這個表格是否已經(jīng)被撐大了;同時,通過document.getElementById("table1").style.left獲得的值是空的,因為沒有設置這個值。
要取得HTML元素的真正位置與大小,只能通過offsetLeft,offsetTop,clientWidth,clientHeight,offsetWidth,offsetHeight屬性,其中offsetLeft與offsetTop分別是當前元素在父元素內(nèi)的相對左坐標與相對頂坐標,要取得絕對坐標,還需要用到offsetParent屬性,改屬性取得當前元素的父元素。要取得絕對坐標,就必須依次獲得父元素的相對坐標,直到父元素為空,然后把所有相對坐標加起來,得到當前元素的絕對坐標。
最常見的是日期選擇框,當點擊按鈕時彈出日期選擇框總是在按鈕的旁邊,這個選擇框的坐標,就是根據(jù)按鈕的坐標以及按鈕的offsetWidth,offsetHeight來取得的。