我們都知道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