对于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不支持offsetparent
与position:relative;
,但我确实需要这个css是出于其他原因,任何行走?
答案 0 :(得分:0)
我曾经一直使用类似这样的脚本来确定元素的位置。从那时起,我开始使用jQuery,它有两个非常棒且非常交叉浏览器的函数来确定位置:
position() - http://api.jquery.com/position/ - 获取元素相对于父元素的位置。
offset() - http://api.jquery.com/offset/ - 获取元素相对于文档的位置。
起初我有点不愿意使用jQuery,因为我不想花时间学习它,因为我已经自己编写了很多代码片段来做这样的事情。当我尝试jQuery时,我在一天内学会了它,我喜欢它,现在将它用于我的所有JavaScript项目。
这可能不是您正在寻找的答案,但jQuery确实具有定位功能。