当锚在URL中时,避免页面滚动/跳转

时间:2012-05-16 21:13:53

标签: javascript jquery anchor

  

可能重复:
  jquery - disable anchor “jump” when loading a page

我正在显示一个div,具体取决于URL中的哈希值,但我想避免页面跳转到具有该特定ID的div的位置。

当页面直接使用URL中的哈希导航时,我只会遇到问题,所以例如,如果某人有书标记了该页面。

所以例如我有网址 domain.com/page.html#myitem-1

ID = myitem-1然后会显示,但是页面会跳转到我不想要的div的位置。

我试图使用scrollTop(0)强制窗口位置回到顶部,但似乎在锚点跳转发生之前调用它是没有效果的

示例代码:

  $(document).ready(function() {
    $('.glossary-term').hide();
    $(window.location.hash).show();

    $(window).scrollTop(0);

});

我能够让这个scrollTop工作的唯一方法是将它放在持续时间为1的setTimeOut中,但这看起来有点像黑客。还有其他建议吗?

由于

1 个答案:

答案 0 :(得分:9)

好吧,如果你的内部机制只是用于显示div,你可以随时更改(或删除)“name”属性,这样浏览器就不会直接找到它,也不会尝试滚动;)< / p>

否则请尝试How to disable anchor "jump" when loading a page?

相关问题