Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Browser 如何让浏览器滚动到#锚定页面重新加载?_Browser_Anchor_User Experience - Fatal编程技术网

Browser 如何让浏览器滚动到#锚定页面重新加载?

Browser 如何让浏览器滚动到#锚定页面重新加载?,browser,anchor,user-experience,Browser,Anchor,User Experience,我正在解决一个有趣的浏览器用户体验问题 假设您在浏览器中单击一个锚定链接并转到www.example.com/#footer。然后单击键盘上的“主页”按钮,浏览器将向上滚动到站点顶部。如果您现在通过F5重新加载页面,URL中仍会有#页脚(www.example.com/#footer),但浏览器不会向下滚动到#footer——页面将保持滚动到顶部 我的问题是——当页面在没有JavaScript的情况下重新加载时,有没有办法让浏览器滚动到#footer 下面是说明问题的HTML: <html

我正在解决一个有趣的浏览器用户体验问题

假设您在浏览器中单击一个锚定链接并转到
www.example.com/#footer
。然后单击键盘上的“主页”按钮,浏览器将向上滚动到站点顶部。如果您现在通过
F5
重新加载页面,URL中仍会有
#页脚
www.example.com/#footer
),但浏览器不会向下滚动到
#footer
——页面将保持滚动到顶部

我的问题是——当页面在没有JavaScript的情况下重新加载时,有没有办法让浏览器滚动到
#footer

下面是说明问题的HTML:

<html>
  <body>
    <div style="height: 2000px">
      <a href="#footer">click here to go to footer</a>
    </div>
    <div style="height: 300px" id="footer">
      footer div (now scroll up and hit F5)
    </div>
  </body>
</html>

页脚div(现在向上滚动并点击F5)
在浏览器中加载此页面,然后单击页脚链接。然后滚动到顶部,然后重新加载页面。即使URL中有
#footer
,浏览器也不会再次将页面滚动到页脚

如果你只需向上滚动一点并点击“重新加载”,就会产生类似的效果。当页面重新加载时,它将停留在您离开的位置,而不是返回锚定位置


我可以通过使用JavaScript在onload中添加scrollong来解决这个问题,但我想知道是否有一个纯浏览器解决方案?在我重新加载页面并使浏览器滚动到URL中的锚定位置之前,如何使浏览器忘记页面所在的位置?

没有“纯浏览器解决方案”,因为预期的行为就是它当前的行为。如果你想要自定义行为,你必须使用JavaScript。好的,我将使用JavaScript。我的一个解决方案是只滚动到
#anchor
的顶部偏移量,但是有没有其他方法刷新当前页面的滚动状态?没有“纯浏览器解决方案”,因为预期的行为就是它当前的状态。如果你想要自定义行为,你必须使用JavaScript。好的,我将使用JavaScript。我的一个解决方案是只滚动到
#anchor
的顶部偏移量,但是否有其他方法刷新当前页面的滚动状态?