나는 페이지 내에서 자바 스크립트 "점프 메뉴"를 만들 필요가있는 작업을 위해 프로젝트 작업을 해왔다.페이지 스크롤 크로스 브라우저
(Q는 : 잠깐, 그냥 a
요소와 네임 스페이스를 사용하지 않는 이유는 점프 메뉴는 페이지 내에서 이동합니다
을 :?! 그 그래서 목적을 물리 칠 것 때문에하십시오 . 나는 자바 스크립트와 함께이 작업을 수행 할 필요가 그런 식으로 답변을 제공하지 않습니다 (AND I는 jQuery를 사용하지 않는!))
그래서, 여기에 내가 할 것입니다 :
내가 목록에서을 페이지 상단 및 페이지 하단의 목록
페이지 상단의 각 목록 항목에 이벤트 수신기를 추가하고 해당 목록 항목에 해당하는 페이지 내의 해당 콘텐츠 항목에 대한 참조를 첨부합니다.
상단의 링크를 클릭하면 스크롤하려는 항목의 offsetTop
을 가져오고 document.body.scrollTop
또는 window.pageYOffset
중 하나를 설정합니다.
나는 실질적으로 window.pageYOffset
을 필요로하지는 않았지만 어딘가에서 작동 할 것이라고 말했고 결코 제 코드에서 제거하지 않았습니다. 어느 쪽이든, 이것은 Chrome, Safari 및 Opera의 document.body.scrollTop
에서 작동하는 것으로 보이지만 Firefox 또는 IE에서는 작동하지 않습니다. 왜? 여기
document.body.scrollTop
설정 코드 블록이다. "네, 오른쪽 요소를 잡아하고있다"
if(elem.jump_ref)
{
if(document.body.scrollTop || document.body.scrollTop === 0)
{
document.body.scrollTop = elem.jump_ref.offsetTop - page_top_padding;
}
else if(window.pageYOffset || window.pageYOffset === 0)
{
window.pageYOffset = elem.jump_ref.offsetTop - page_top_padding;
}
}
And Heres The Project In JSFIDDLE
내가 통해 강화했습니다 및 발견 "예, 저는 document.body.scrollTop
을 설정하고 있습니다."아니오, document.body.scrollTop
을 0으로 설정하지 않았습니다. "그래도 여전히 작동하지 않습니다! 제발 도와주세요! 내 웹 페이지는 화요일에 공개 될 예정입니다!
도움을 청하는 동안 너무 짭짤하지 않아야합니다 ... –
게시물이 중복되었습니다 ... http://stackoverflow.com/questions/7435843/window-top-document-body-scrolltop-not-working -in-chrome-or-firefox –
무엇? @PedroMoreira 어쩌면 당신은 텍스트를 통해 내 기분을 잘못 해석했을지 모르지만, 나는 어떻게 내가 "짠"것인지 잘 모르겠다. 죄송합니다 ... – WebWanderer