在Chrome上刷新时,无法强制页面滚动到顶部

时间:2015-05-03 20:22:46

标签: javascript jquery css scroll

我试图强制页面在刷新时滚动到顶部,类似于

$(window).scrollTop(0);

但它似乎发生在自动向下滚动刷新之前。我的脚本运行,然后浏览器恢复其最后位置。

我在这样的几个地方运行代码

        $(function(){
            $(window).scrollTop(0);
        });

        $(window).scrollTop(0);

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

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

同时发生同样的事情。我是否必须将此代码放在其他地方?将JS加载到HTML的特定部分?纯JS或jQuery还有什么可以帮助我解决这个问题吗?

@Edit

我尝试使用$(html, body).scrollTo(0)并且无法使其正常工作

我试过没有jQuery而且没有发生任何事情

window.scrollTo(0,0)

我禁用了用Javascript编写的所有内容,只放了这段代码而没有任何反应。

@ EDIT2

之前我遇到过这个问题,我确定我已经解决了这个问题。这是setTimeout,如@ raam86所​​示。问题是我在页面加载时做了一些数学运算,这必须在用户开始上下滚动之前完成

2 个答案:

答案 0 :(得分:8)

正确答案是:

window.onbeforeunload = function () {
        window.scrollTo(0,0);
};

因为Chrome和其他浏览器"记得"卸载之前的最后一个滚动位置,所以如果你在卸载页面之前将值设置为0,0它们将记住0,0并且不会滚动回到滚动条所在的位置:)

刚刚超过所有页面控制器,它们将在重新加载/刷新/其他时滚动到顶部

答案 1 :(得分:0)

尝试使用set timeout。

类似的东西:

var _TIMEOUT = 300
setTimeout(function(){$(window).scrollTo(0)},_TIMEOUT );

这有望在Chrome滚动后触发。如果它没有尝试摆弄超时