reactjs React滚动到顶部不起作用?需要新的解决方案

gwo2fgha  于 2023-01-25  发布在  React
关注(0)|答案(2)|浏览(339)

所以当用户提交表单时,我试图滚动到屏幕顶部,但堆栈溢出的答案似乎对我不起作用。
下面是我代码:

handleClick (evt) {
    evt.preventDefault();
    this.calculateScore();
    this.setState({submittingQuiz: true});

    // let myPage = document.querySelector('body');
    // myPage.scrollTo(0,0); Couldn't get this way to work either

    window.scrollTo({top: 0, behavior: 'smooth'})
}

有没有关于如何解决这个问题的想法。我有一些造型,我想可能会弄乱它。

html {
  background-image: url('./tupac.jpeg');
  background-position-y: -580px;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
}

Anyone got a clue?
hgqdbh6s

hgqdbh6s1#

这可能是因为body具有height: 100vh;,或者应用程序的某个主容器具有相同的height: 100vh;
尝试删除body上的height: 100vh;和应用程序的主容器,然后再次测试。

oewdyzsn

oewdyzsn2#

我也遇到过这个问题,正如标记的解决方案所提到的,删除height: 100vh为我解决了这个问题。然而,没有height: 100vh,我的网站无法正常运行(即使有足够的边距/填充,元素也会到达页面的最底部)。
如果您需要height: 100vh,那么我建议使用element.scrollIntoView(),而不是window.scrollTo(),其中的元素是网站顶部或附近的某个元素。

相关问题