【问题标题】:Prevent jumping to hash on initial load of URL consisting a hash [duplicate]防止在初始加载包含哈希的 URL 时跳转到哈希 [重复]
【发布时间】:2022-02-22 15:41:18
【问题描述】:

当hash发生变化时,可以防止跳转到hash,例如:

function handleHashChange() {
   const scrollY = window.pageYOffset;
   window.scrollTo({top: scrollY});
}

但这仅适用于稍后更改哈希的情况。当加载具有 已包含哈希的 URL 的页面时,这不起作用。 (例如:mysite.com/posts/#popular)我猜可能是因为在添加自定义hashchange 事件侦听器之前将原生hashchange 事件发送到回调队列。

这个问题有解决办法吗?

【问题讨论】:

    标签: javascript hash scroll hashchange anchor-scroll


    【解决方案1】:

    看来,所有需要做的就是在load 事件监听器中调用滚动函数:

    window.addEventListener('load',()=>{
        const scrollY = window.pageYOffset;
          setTimeout(() => {
            window.scrollTo({top: scrollY});
          }, 0);
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-31
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      相关资源
      最近更新 更多