珠峰培训

jQuery里的offset方法是怎么实现的(获得网页元素到浏览器左上角的绝对位置)

作者:

2012-12-25 11:29:46

438

 //获取某元素距离浏览器的绝对位置

//对应讲解视频:http://online.zhufengpeixun.cn/viewer.do?courseId=211266
function getPosition (ele,oRefer){//oRefer是定位参照物。可以不写,不写就是和浏览器的绝对位置
//注意:oRefer必须是ele的offset祖先,要不然取到的值是ele距离body的绝对偏移量
oRefer=oRefer||document.body;
var x=ele.offsetLeft;
var y=ele.offsetTop;
p=ele.offsetParent;//重在理解好offsetParent
while(p!=oRefer&&p!=document.body){
 
if(window.navigator.userAgent.indexOf('MSIE 8.0')>-1){//ie8有个bug(边框问题)
x+=p.offsetLeft;
y+=p.offsetTop;
}else{
x+=p.offsetLeft+p.clientLeft;
y+=p.offsetTop+p.clientTop;
}
p=p.offsetParent;
}
var obj={};
obj.x=x;
obj.y=y;
return obj;
}