重新加载浏览器不会将页面重置为顶部
我想当你点击刷新时,浏览器应该将你的页面重置为顶部? 我正在使用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滚动得很晚
- 加载事件后
- 超时后
- 加载事件后