document.body.scrollTop 값 이 0 인 해결 방법 에서 흔히 볼 수 있 는 표준 문제

페이지 를 만 들 때 위치 가 고정된 층 을 사용 하여 document.body.scrollTop 을 읽 고 층 의 위 치 를 설정 할 수 있 습 니 다.이렇게:­ window.onscroll = function (){ var oFix = document.getElementById("divfix"); oFix.style.top = document.body.scrollTop + "px"; } 그런데 왜 기대 효과 에 미 치지 못 했 을 까?document.body.scrollTop 의 값 을 출력 해 보 니 0 이 었 다.원래 DTD 의 문 제 였 는데 페이지 가 직접 시작 하면 문제 가 없 었 다.그러나 웹 표준 에 부합 하려 면 DTD 는 당연히 없어 서 는 안 된다.DTD 가 있 을 때 document.documentElement.scrollTop 으로 document.body.scrollTop 을 대체 하면 됩 니 다.­ window.onscroll = function (){ var oFix = document.getElementById("divfix"); oFix.style.top = document.documentElement.scrollTop + "px"; } 편집자 주석:­ 페이지 에 DTD(또는 DOCTYPE 지정)가 있 을 때 document.documentElement 를 사용 합 니 다.페이지 에 DTD 가 없 거나 DOCTYPE 가 지정 되 지 않 았 을 때 document.body 를 사용 합 니 다.IE 와 Firefox 에서 모두 그렇다.호 환 을 위해 다음 코드 를 사용 할 수 있 습 니 다:var scrollTop=window.pageyOffset|document.documentElement.scrollTop||document.body.scrollTop|0;

좋은 웹페이지 즐겨찾기