我们都知道IE6很难。但是,与Firefox或其他浏览器相比,在IE的更高版本中定位时似乎也存在不同的行为。我有一对简单的javascript函数,它查找元素的位置,然后显示与第一个元素相关的另一个元素。这个想法是当鼠标悬停在第一个元素的前面时,让第二个元素稍微大一些。它工作正常,除了所有版本的Internet Explorer之外,第二个元素的位置与Firefox中的位置不同。在IE浏览器和其他浏览器中获取元素位置
代码即可获得一个元素的位置是:
function getPosition(e)
{
var left = 0;
var top = 0;
while (e.offsetParent) {
left += e.offsetLeft;
top += e.offsetTop;
e = e.offsetParent;
}
left += e.offsetLeft;
top += e.offsetTop;
return {x:left, y:top};
}
和实际翻转显示的代码是:
var pos = getPosition(elem1);
elem2.style.top = pos.y - 8;
elem2.style.left = pos.x - 6;
在Firefox中,elem2
直接出现在elem1
,我所想要的至。但在IE7或IE8中看起来很不错。这是什么原因发生的,有没有办法解决它?
我会给你带来怀疑的好处,并假设你自己编写这样的代码有一个很好的理由,但一定要快速获得一些指导的方法是阅读jQuery或其他相关代码框架,因为这正是他们旨在规范化的行为。 – Pointy 2010-04-11 13:26:04
我第二点什么波蒂说。对于自己来说,所有的应有的尊重,这些框架旨在使这样的事情变得容易。 – 2010-04-11 13:28:20
请不要阻止人们学习。另外,大型图书馆也不是绝对可靠的。 – 2010-04-11 22:54:29