2012-04-08 4 views
2

지금 때마다 사용자가이 코드를 사용하여 URL 해시를 업데이트 내 페이지의 하단에 도달 :jQuery를 사용하여 특정 요소를 볼 때마다 어떻게해야합니까?

var new_page_value = 1; 
$(window).scroll(function() { 
    if($(window).scrollTop() == $(document).height() - $(window).height()) { 
     new_page_value += 1; 
     window.location.hash = 'page-' + new_page_value; 
    } 
}); 

나는 동일한 기능을 수행 할 수있는 방법을 클래스로 된 div의 과거 사용자가 스크롤 "페이지 "아래 코드에서? 예를 들어 사용자가 첫 번째보기로 스크롤하면 해시는 # page-1로 업데이트해야하지만 두 번째보기로 스크롤하면 해시는 # page-2로 업데이트되어야합니다. 그리고 처음으로 다시 스크롤하면 해시는 다시 # page-1로 업데이트됩니다. 기본적으로 해시는 div에있는 뷰를 기반으로 업데이트해야합니다.

<div class="page" data-page-num="1"></div> 

<br /><br /><br /><br /><br /><br /><br /><br /><br /> 

<div class="page" data-page-num="2"></div> 

<br /><br /><br /><br /><br /><br /><br /><br /><br /> 

<div class="page" data-page-num="3"></div> 
+2

'








은'페이지의 스타일을하는 가장 좋은 방법이 아니다 ... **) ** – gdoron

+0

그 코드가 될 수 있도록 난 그냥 휴식 태그를 넣어 @gdoron 가능한 솔루션을 테스트하기 위해 예제로 사용됩니다. 나는 실제로 그것을 사용하지 않고있다. – TK123

+0

'div'중 두 개 이상이 보이는 경우 어떤 것을 선택합니까? – MrWhite

답변

0

이 코드가 도움이 될 수 있지만 클라이언트 측에서 약간 집중적 일 수 있습니다.

var new_page_value = 1; 
$(window).scroll(function() { 
    $(".page").each(function() { 
     var position = $(this).position(); 
     if($(window).scrollTop() == position.top) { 
      new_page_value += 1; 
      window.location.hash = 'page-' + new_page_value; 
     } 
    }); 

    if($(window).scrollTop() == $(document).height() - $(window).height()) { 
     new_page_value += 1; 
     window.location.hash = 'page-' + new_page_value; 
    } 
}); 
+0

예상대로 작동하지 않는 것 같습니다. 이제 문제의 문제를 테스트하기 위해 하단 코드를 제거했습니다. 해시가 업데이트되지 않습니다. window.location.hash를 alert (new_page_value)로 바꾸면 경고가 발생하지 않습니다. – TK123

관련 문제