2010-08-20 3 views
1

javascript를 사용하여 화면에서 요소의 위치를 ​​찾으려고합니다. 이것이 내가하는 일이다.javascript 및 offsettop을 사용하여 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은 다른 모든 요소의 첫 번째 절대 조상 요소)에 상대적인 최상위 위치를 찾습니다.

document.body이고 심지어는 fixed elements입니다.

위의 사항이 문제가 아니라면 약간의 코드를 게시하면 문제를 해결하는 데 도움이 될 수 있습니다.

+0

Safari에 비슷한 문제가있는 경우 문제가 될 수 있습니다. 나를 없애 버리는 이유는 다음과 같습니다. class = "target"인 7 가지 요소를 찾습니다. 6 개는 offsetTop에 대해 0을 반환하지만 마지막에 올바른 값을 반환합니다. 어떻게 든 작동합니다. 일관성이 없어. 더블과 트리플은 실제 스팬 태그를 검사했고 모두 동일합니다 (당연히 ID 제외). – Skunkwaffle

관련 문제