offsetParent是不同的

时间:2011-11-07 22:35:17

标签: javascript css offset

对于chrome和ff这个脚本工作完美,当涉及到可怕的ie。有一个问题

function getY(oElement) {
    var curtop = 0;
    if (oElement.offsetParent) {
      while (oElement.offsetParent) 
      {
        curtop += oElement.offsetTop;
        oElement = oElement.offsetParent;
      }
    }
    else if (oElement.y) {
      curtop += oElement.y;
    }
    return curtop;
}

我尝试了一些调试,发现chrome和ff的父级是<Li>这是正确的,但ie的父级是<body>

请帮助任何人?

好的,我做了一些挖掘,发现ie不支持offsetparentposition:relative;,但我确实需要这个css是出于其他原因,任何行走?

1 个答案:

答案 0 :(得分:0)

我曾经一直使用类似这样的脚本来确定元素的位置。从那时起,我开始使用jQuery,它有两个非常棒且非常交叉浏览器的函数来确定位置:

position() - http://api.jquery.com/position/ - 获取元素相对于父元素的位置。

offset() - http://api.jquery.com/offset/ - 获取元素相对于文档的位置。

起初我有点不愿意使用jQuery,因为我不想花时间学习它,因为我已经自己编写了很多代码片段来做这样的事情。当我尝试jQuery时,我在一天内学会了它,我喜欢它,现在将它用于我的所有JavaScript项目。

这可能不是您正在寻找的答案,但jQuery确实具有定位功能。