在页面刷新时让浏览器重置滚动位置的最佳做法是什么?

时间:2018-03-19 07:02:05

标签: javascript jquery html css

问题

我创造了一个相当简单的投资组合。我在顶部有一个导航栏,带有一些导航链接。其中一个是"关于我",点击后,会自动提示页面跳转到html div section标签,元素ID为#about-me。该URL也会更改,并在最后附加#about-me

当我刷新页面时,网址保持不变,因此页面不会向上滚动到顶部,而是在重新加载时显示相同的位置。我相信这是由于浏览器自动使用缓存? (请纠正我,如果我错了)

正确处理 的最佳方法是什么?

一些可能的解决方案

  1. 当DOM完成加载并准备好被操作时,使用jQuery .ready()函数立即调用一个函数,该函数会自动将window.location.href设置为源URL,这将重置滚动位置。

  2. 阻止浏览器缓存。 (我想这有一个缺点,特别是如果我希望我的网站的其他部分将来能够利用缓存?)

1 个答案:

答案 0 :(得分:0)

所以我找到了一个非常简单的答案,万一有人想知道。防止事件的默认行为将阻止URL在末尾添加哈希,然后您必须添加代码以使滚动正常工作,因为防止默认行为也将阻止导航链接正常工作。但是在页面刷新时,页面将从顶部开始,只要您省略在动画函数末尾添加哈希值。

来自W3schools

    public class Start
    {
        public DateTime dateTime { get; set; }
        public string timeZone { get; set; }
    }
相关问题