2015-01-18 7 views

답변

0

당신이 선언 한 경우, 문서의 스크롤 위치가 다르게 액세스 할 수에 따라 달라집니다. Doctype이 없으면, 위치는 보편적으로 다음과 같이 검색됩니다.

document.body.scrollTop; 

표준 모드에서 이것은 약간 까다 롭습니다. IE와 파이어 폭스 모두 들어 다음 코드를 수행합니다

document.documentElement.scrollTop; 

는 그러나, 크롬 같은 웹킷 기반 브라우저는 여전히 body.scrollTop 값을 채 웁니다. 그러므로 더 큰 두 가지를 고르셔야합니다 :

function get_scroll(){ 
    var top=document.documentElement.scrollTop; 
    if (top<document.body.scrollTop) top=document.body.scrollTop; 
    return top; 
} 

표준 모드보다 quirks 모드가 더 자주 작동하는 방식이 아이러니하지 않습니까?

+0

저는 이것을 이해하지 못합니다. 전체 코드를 제공 할 수 있습니까? 나는 IE가 필요 없지만, 그것은 죽었다. –

+0

나는 심지어 console.log (window.scrollY)를 시도했다; 그것은 제로도 나에게 줬다. 나는 그것을 스크롤하고 발사합니다, 왜 그것이 0을 반환 했습니까? –

+0

오, IE에서는 그렇지 않습니다. 브라우저에는 다른 렌더링 모드가 있습니다. 함수 호출에 맞게 대답을 수정했습니다. – Schien

0

조건이 있다면 나는 이해하지 않지만, 그것없이, 나는 성공적인 결과 (사용 크롬) 도착 :

if(document.body && (document.body.scrollTop)) 

그것은 어떤을하지 않습니다

var get_scroll = function(){ 
    y = document.body.scrollTop; 
    return y; 
} 

console.log(get_scroll()); 
0

두 번이 옵션을 선택합니다 나 한테 감각이있어. document.body는 true/false 값을 반환하지 않으며 document.body.scrollTop도 반환하지 않습니다. 두 값을 비교하여 변경해보십시오. 설정 한 경우 :

var get_scroll = function(){ 
    y = 0; 
    if(1==1) { 
    y = document.body.scrollTop; 
    } 
    return y; 
}; 

그래야합니다.

관련 문제