在做javascript的时候,经常会需要获取页面上某个元素的位置。javascript中的offsetTop和offsetLeft方法返回的是该对象相对于“相对父元素”的位置信息。元素的相对父元素是offsetParent而不是parentNode,这点很重要,如果使用parentNode,在页面的元素的样式中设置有float属性的时候,得到的很可能会是错误的位置信息。获得元素位置信息的代码如下:
function positionOffset(element)
{
var top=0, left=0;
do
{
top+=element.offsetTop || 0;
left+=element.offsetLeft || 0;
element=element.offsetParent;
}while(element);
return [top, left];
}
经过测试,OK没问题。