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

ima*_*tty 7 javascript jquery accordion jquery-ui-accordion

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

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

Nik*_*ppa 11

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

$(window).on('beforeunload', function() {
   $(window).scrollTop(0);
});
Run Code Online (Sandbox Code Playgroud)


Nik*_*sev 9

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

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

$(document).ready(function(){
    $(this).scrollTop(0);
});
Run Code Online (Sandbox Code Playgroud)

编辑:

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

$(document).ready(function(){
    $('html').animate({scrollTop:0}, 1);
    $('body').animate({scrollTop:0}, 1);
});
Run Code Online (Sandbox Code Playgroud)

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

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

  • 在我看来,在chrome中,'autoscroll'在加载时发生,而不是在'ready'上发生. (2认同)

Nie*_*sol 6

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

你可以像这样"修复"这个:

window.onload = function() {document.body.scrollTop = document.documentElement.scrollTop = 0;};
Run Code Online (Sandbox Code Playgroud)