避免在 URL 中定位点时页面滚动/跳转

Avoid the page scrolling/jumping when anchor is in the URL

本文关键字:滚动 跳转 URL 定位      更新时间:2023-09-26

可能的重复项:
jQuery - 加载页面时禁用锚点"跳转"

我正在根据 URL 中的哈希值显示一个div,但我想避免页面跳转到具有该特定 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 中,但这似乎有点黑客。 还有其他建议吗?

谢谢

好吧

,如果这是您使用锚点仅用于显示div的内部机制,您可以随时更改(或删除("name"属性,这样浏览器就不会直接找到它并且不会尝试滚动;)

否则尝试 加载页面时如何禁用锚点"跳转"?