我正在创建一个网站,我必须将内容框放在绝对的位置上--一个在屏幕顶部,一个在屏幕下方。我将元素设置为overflow-x和overflow-y none。
body {
overflow-x: hidden;
overflow-y: hidden;
}
当用户点击屏幕上的按钮时,overflow-y变为visible。这很好用。但是,如果用户在屏幕底部附近(如与页面首次加载时相比更向下)并且它们重新加载页面,用户停留在他们所处的位置,但是溢出-y被设置为无,并且用户停留在页面的中途。有没有办法让用户总是从页面的顶部开始?
另外,这完全是普通的js、html和css --没有库或类似的东西。如果我需要添加代码的任何其他部分,请告诉我。谢谢
我试过使用各种方法在加载时或加载前运行代码(比如scrollTo(0,0)等)。在重新加载之前滚动页面可以工作,但看起来不是很好。如果它可以在顶部加载,而用户实际上看不到它移动,如果这有意义的话,那就太好了。
3条答案
按热度按时间bvjveswy1#
你需要一些javascript来完成这件事。我推荐如下:
8hhllhi22#
我在StackOverflow上找到了这个解决方案。
上面的函数用自身替换URL,然后重新加载页面,使页面从头开始。这样做的一个缺点是,此页面的前一个历史会话也将被替换为一个新会话,用户将无法使用浏览器上的后退按钮返回到以前的页面。请在MDN查看
下面是答案的链接。(https://stackoverflow.com/a/65422431/10521908)
6rqinv9w3#
这是浏览器的默认行为,他们不滚动到顶部刷新。我们不得不手动做。
对于更多的refer,这有完整的答案。
注:在发布问题之前,请查看是否已经回答。