有时嵌套多层div时,可能由于设置了内层div的top和left是相对与外层div来说的,所以有时计算内部的div到body的边的距离会出现错误,此时,只需要循环div的外层的多个父节点,累加就能得到最终的结果,函数如下.
function absPos(node){
var x=y=0;
do {
x+=node.offsetLeft;
y+=node.offsetTop;
}
while(node=node.offsetParent);
return {
'x':x,
'y':y
};
}