2013-12-16 29 views
3

我的頁面有10個塊,每個塊都取窗口的高度。我正在嘗試通過將網址添加到網址上來更改網址,例如page.com#one。網址更新正常,但混帳嘗試去的ID。我如何順利過渡變更而不需要衝動?頁面跳轉改變網址中的ID?

<div class="block" id="one"> 
     <p>....</p> 
    </div> 
    <div class="block" id="two"> 
     <p>....</p> 
    </div> 

jQuery的

$('.block').each(function(){ 
     if (
      $(this).offset().top < window.pageYOffset + 10 
      && $(this).offset().top + $(this).height() > window.pageYOffset + 10 
     ){ 
      window.location.hash = $(this).attr('id'); 
      } 
    }); 
+0

爲什麼你爲每個'block'而不是直接用'id'指向想要的'block' ? – BeNdErR

+0

我試圖改變網址以及追加塊ID以滾動頁面的網址。 – user1437251

回答

0

這是因爲,通過設置的window.location.hash的價值,你告訴瀏覽器物理跳轉到該元素在頁面中。

最有可能你正在試圖模仿不使用真正 ID的頁面,但佔位的,如:

http://url.com/#block-one

而且對頁面加載一個腳本,做一些事情例如:

$(function() { 
    if(window.location.hash.substring(0, 7) === "#block-") { 
     // Scroll to block whatever... 
    } 
});