关于更改网址中的ID的页面抽搐?

时间:2013-12-16 08:14:38

标签: javascript jquery html css

我的页面有10个块,每个块占用窗口的高度。我正在尝试通过向页面滚动向网址添加块ID来更改网址,如page.com#one。网址更新很好,但试图去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');
           }
     });

1 个答案:

答案 0 :(得分:0)

这是因为通过设置window.location.hash的值,您告诉浏览器物理跳转到页面中的该元素。

您尝试模拟的网页很可能不会使用真正的 ID,而是使用占位符,例如:

  

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

并且在页面加载时有一个脚本,它可以执行以下操作:

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