对于chrome和ff,当涉及到可怕的问题时,该脚本非常完美。有一个问题

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>

请帮助任何人?

好的,我做了一些进一步的挖掘,发现即不支持offsetparentposition:relative;,但是由于其他原因,我确实需要此CSS,是否有任何解决方法?

最佳答案

我过去经常使用与此类似的脚本来确定元素的位置。从那时起,我开始使用jQuery,它具有两个非常出色且非常兼容浏览器的功能来确定位置:

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

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

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

这可能不是您要查找的答案,但是jQuery确实具有位置查找功能。

09-28 11:49