/*
* 求元素到页面的绝对距离:
* 直接使用函数的返回值
* 例如:getPos("元素").left,得到元素距离左侧的绝对距离
* getPos("元素").top,得到元素距离上侧的绝对距离
*/
function getPos(ele) {
// 初始左边距和上边距都为0
var l = 0;
var t = 0;
// 当元素存在定位父级(即ele.offsetParent不为null)时,执行本循环内的代码块
while (ele.offsetParent) {
// 初始的边距累加元素的边距和边框宽度
l += ele.offsetLeft + ele.offsetParent.clientLeft;
t += ele.offsetTop + ele.offsetParent.clientTop;
// 将元素替换为元素的定位父级(迭代)
ele = ele.offsetParent;
}
// 等上面的循环体结束后才会输出{}
return {
'left': l,
'top': t
};
}