2012-12-03 5 views
2

페이지가 완전히로드되면 창 스크롤 위치를 알고 싶습니다.페이지가 완전히로드 될 때 창 스크롤 위치

id가있는 링크를 클릭하면이 id를 가진 요소에 따라 페이지가로드됩니다. 페이지가로드되면 창 위치를 알고 싶습니다.

index.html을

<a href="page.html#2012_8">link</a> 

page.html

<script> 
$(window).load(function(){ 
    console.log($(window).scrollTop()); 
}); 
</script> 

<p id="2012_8">This is some text in a paragraph.</p> 

내가 page.html를 새로 고침 할 때, 콘솔 로그는 0을 얻을 링크를 클릭, 콘솔 로그가 올 수 창 스크롤 위치. 왜? 어떤 도움을 주셔서 감사합니다.

+0

동작을 데모하기위한 피들 : http://fiddle.jshell.net/2bL7X/show/. "Go!"를 클릭하십시오. 다른 피들 (fiddle)의 해시 마커'foobar '를 보내야하며, "load 5027"또는 비슷한 것을 보여주는 팝업이 보일 것입니다. – apsillers

답변

4

에 대한 ATTR을 사용할 수 있습니다

console.log($(document).scrollTop());

내가 불을 지르고에서 테스트

사용하여 시도하고 괜찮 았는데 .

+0

감사합니다,이 내 문제를 해결합니다 : D – Matt

+0

환영합니다 : P는 – joao

1

윈도우 해시를 변경하면 '로드'이벤트가 발생하지 않습니다. 이벤트가 발생하려면 hashchange 이벤트에 연결해야합니다.

$(window).on('hashchange',function() { 
    console.log($(window).scrollTop()); 
}); 

$(document).ready(function() { 
    $(window).trigger('hashchange'); 
}); 
+0

여기에 적용됩니까? OP는 해시가있는 완전히 다른 페이지 * ('index.html' ->'page.html')로 이동합니다. – apsillers

+0

@ capsillers는 그것을 보지 못했습니다! 감사. 이 솔루션은 여전히 ​​다른 페이지에서 작동해야합니다. 그러나 질문에 전혀 대답하지 않습니다! – bluetoft

+0

@Bluetoft 바로이 질문에 대한 대답이 아닙니다. – Matt

-1

당신은

$(document).ready(function(){ 
console.log($(document).prop('scrollHeight')); 
}) 

사용하거나이

$(document).ready(function(){ 
console.log($(document).attr('scrollHeight')); 
}) 
+0

-1 : ['scrollHeight'] (https://developer.mozilla.org/en-US/docs/DOM/element.scrollHeight)는 요소의 총 스크롤 가능 콘텐츠 높이를 측정합니다. 스크롤에 따라 변경되지 않습니다. 요소 내부에 포함 된 내용이 높이가 증가하거나 감소 할 때 변경됩니다. OP는 스크롤 오프셋, 즉 페이지가 현재 스크롤되는 거리 *를 원합니다. – apsillers

관련 문제