2012-04-08 17 views
2

現在每次用戶達到我的頁面的底部我使用此代碼更新網址的哈希:如何在每次使用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 2012-04-08 00:09:30

+0

@gdoron我只是把斷標記,以便代碼可能是用作示例來測試任何可能的解決方案。我並沒有真正使用它。 – TK123 2012-04-08 00:12:30

+0

如果有超過1個'div'在視圖中,那麼你選擇哪一個? – MrWhite 2012-04-08 00:29:33

回答

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

這似乎沒有按預期工作。我現在刪除底部的代碼來測試有問題的問題。如果我用alert(new_page_value)替換window.location.hash,它永遠不會被更新。 – TK123 2012-04-08 00:40:39

相關問題