Search

12/04/2007

offsetHeight / offsetWidth / offsetTop / offsetLeft

對一個 element 而言,我們常會用到的是 element 的(1)寬 / (2)高 / 與 (3)document 左邊距離多少 / (4)與 document 上面距離多少。
(1) elemenet 的寬就是 element.offsetWidth
(2) elemenet 的高就是 element.offsetHeight
(3) offsetTop 是 element 與 offsetParent 的距離。所以(3)的算法就是一直累加 offsetParent 的 offsetLeft,code 如下:

function findPosX(obj){
var curLeft = 0;
do{
curLeft += obj.offsetLeft;
} while(obj = obj.offsetParent);
}
return curLeft;

(4) 同理 offsetLeft 的算法為
function findPosX(obj){
var curTop = 0;
do{
curTop += obj.offsetTop;
} while(obj = obj.offsetParent);
}
return curTop;

沒有留言: