2013-12-16 24 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... 
    } 
});