css 我怎样才能让页面重新加载到屏幕顶部呢?现在它重新加载到了加载之前的位置

pjngdqdw  于 2023-02-06  发布在  其他
关注(0)|答案(3)|浏览(209)

我正在创建一个网站,我必须将内容框放在绝对的位置上--一个在屏幕顶部,一个在屏幕下方。我将元素设置为overflow-x和overflow-y none。

body {
  overflow-x: hidden;
  overflow-y: hidden;
}

当用户点击屏幕上的按钮时,overflow-y变为visible。这很好用。但是,如果用户在屏幕底部附近(如与页面首次加载时相比更向下)并且它们重新加载页面,用户停留在他们所处的位置,但是溢出-y被设置为无,并且用户停留在页面的中途。有没有办法让用户总是从页面的顶部开始?
另外,这完全是普通的js、html和css --没有库或类似的东西。如果我需要添加代码的任何其他部分,请告诉我。谢谢
我试过使用各种方法在加载时或加载前运行代码(比如scrollTo(0,0)等)。在重新加载之前滚动页面可以工作,但看起来不是很好。如果它可以在顶部加载,而用户实际上看不到它移动,如果这有意义的话,那就太好了。

bvjveswy

bvjveswy1#

你需要一些javascript来完成这件事。我推荐如下:

window.onbeforeunload = function () {
  window.scrollTo(0, 0);
}
8hhllhi2

8hhllhi22#

我在StackOverflow上找到了这个解决方案。

location.replace(location.href);

上面的函数用自身替换URL,然后重新加载页面,使页面从头开始。这样做的一个缺点是,此页面的前一个历史会话也将被替换为一个新会话,用户将无法使用浏览器上的后退按钮返回到以前的页面。请在MDN查看
下面是答案的链接。(https://stackoverflow.com/a/65422431/10521908

6rqinv9w

6rqinv9w3#

这是浏览器的默认行为,他们不滚动到顶部刷新。我们不得不手动做。

window.onbeforeunload = function () {
        window.scrollTo(0, 0);
      }

对于更多的refer,这有完整的答案。
注:在发布问题之前,请查看是否已经回答。

相关问题