2010-08-20 33 views
1

我試圖在使用javascript的屏幕上找到元素的位置。這就是我正在做的。使用javascript&offset查找HTML元素的位置

function locateTargets(){ 
    var targets = document.getElementsByTagName("span"); 
    for(var i = 0;i<targets.length;i++){ 
     if(targets[i].className == "target"){ 
      targetsY[targets[i].getAttribute("id")] = targets[i].offsetTop; 
     } 
    } 
} 

這適用於Firefox,Chrome和IE,但Opera和Safari最終只能找到0,除了最後一個元素。

任何想法,爲什麼這可能會發生,以及如何解決它?

回答

0

offsetTop找到相對於最後一個絕對定位的父/祖先元素的頂部位置(document.body是任何其他元素的第一個絕對定位的祖先元素)。

它看起來像Opera has a bit of troubledocument.body甚至fixed elements

如果這些不是您的問題,發佈一些代碼可能會幫助我們幫助您排除故障。

+0

我認爲這可能是問題,特別是如果Safari有類似的問題。什麼讓我失望是這樣的: 我找到了class =「target」的七個元素。其中6人返回0爲他們的偏移量,但最後一個返回正確的值。所以它能以某種方式工作。只是不一致。我加倍和三重檢查了實際的span標籤,它們都是相同的(當然除了它們的id)。 – Skunkwaffle 2010-08-20 18:28:03