代码之家  ›  专栏  ›  技术社区  ›  David

如何防止浏览器在渲染时滚动到顶部

  •  0
  • David  · 技术社区  · 7 年前

    如何防止浏览器在渲染时滚动到顶部?这可以在 https://www.gatsbyjs.org/ https://reactjs.org/ 通过使用受限制的网络连接访问网站,并在页面呈现前向下滚动。

    禁用JS时不会发生这种情况。我认为这是盖茨比唯一的问题。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Unmitigated    7 年前

    作为 Ben 说:尝试添加 preventDefault() 在您的链接处理程序上。

    React.js: Stop render from scrolling to top of page

        2
  •  1
  •   David    7 年前

    这最终成为盖茨比的一个漏洞,可以在 https://github.com/gatsbyjs/gatsby/issues/6392#issuecomment-404444341 .

    解决此问题的一种方法是在安装组件之前禁用滚动,然后重新启用它。这可以通过以下样式更改来完成:

    // styles.css
    body {
      overflow: hidden;
    }
    
    // Component.js
    componentDidMount () {
      document.body.style.overflow = 'auto'
    }
    
    推荐文章