您的位置:首页 > Web前端 > JavaScript

JS之 IE 奇葩的offsetTop和offsetLeft

2013-01-21 22:24 316 查看
我想在做很多网页特效的时候,你都想要准确地得到某个element的body的相对位置。但奇葩的IE可不是这么想的,得到的offsetParent往往不是body,所以囧吧!!!

但是,在这个人才辈出的年代,总是有人会想出很nice的方法去解决这个问题。

IE对offsetTop和offsetLeft的理解方式让人费解,往往指相对于父亲container的x和y。所以,IE里面要得到准确的body X和Y,必须用累计的方式:

function getAbsoluteOffsetTop(obj) {
var y = obj.offsetTop;
while (obj = obj.offsetParent) y += obj.offsetTop;
return y;
}


function getAbsoluteOffsetLeft(obj) {
var x = obj.offsetLeft;
while (obj = obj.offsetParent) x += obj.offsetLeft;
return x;
}


picLayer.style.top=parseInt(getAbsoluteOffsetTop(picA))+36+"px";
picLayer.style.left=parseInt(getAbsoluteOffsetLeft(picA))-15+"px";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JS offsetTop offsetLeft