重新加载浏览器不会将页面重置为顶部

我想当你点击刷新时,浏览器应该将你的页面重置为顶部? 我正在使用js手风琴,当我刷新时,它会关闭手风琴,但不会将页面重新定位到顶部。

http://imip.rvadv.com/index3.html

好吧,正如你所看到的,它没有:)

但你可以用一些简单的jQuery强制它:

 $(document).ready(function(){ $(this).scrollTop(0); }); 

编辑:

在IE 9,FF 12和Chrome 20.0中似乎唯一可行的方法如下:

 $(document).ready(function(){ $('html').animate({scrollTop:0}, 1); $('body').animate({scrollTop:0}, 1); }); 

奇怪的是,当我尝试直接滚动元素而不应用任何动画(即$('html').scrollTop(0) )时,它不起作用。 由于持续时间设置为1毫秒,用户将不会注意到任何内容。

如果有人能够对此有所了解,我会很高兴 – 为什么滚动只适用于动画?

如果上述方法都不奏效,请尝试此操作。 这将欺骗浏览器在刷新之前认为它位于文档的顶部。

 $(window).on('beforeunload', function() { $(window).scrollTop(0); }); 

浏览器将向下滚动到重新加载之前的位置,以方便尝试。 它对于过长的页面才真正有用。

你可以像这样“修复”这个:

 window.onload = function() {document.body.scrollTop = document.documentElement.scrollTop = 0;}; 

基于comonpyke的最后评论和我推荐的自己的测试

 $(document).ready(function(){ $('html, body').scrollTop(0); $(window).on('load', function() { setTimeout(function(){ $('html, body').scrollTop(0); }, 0); }); }); 
  • 第一个scrollTop提前滚动
    • 文件准备好之后
  • 第二个scrollTop滚动得很晚
    • 加载事件后
      • 超时后