无法强制Chrome使用Javascript滚动到页面顶部

时间:2015-03-23 04:59:05

标签: javascript jquery css google-chrome scroll

我已经完成了我的网站开发,我正在测试它。我在1秒后运行一个脚本来检查标题/顶部的height,并在内容部分添加margin-top。但此标题/顶部根据滚动位置(运行时)更改大小。所以首先我必须确保页面滚动设置为(顶部)0然后运行此脚本。有时用户已向下滚动并刷新,自然浏览器的行为是将页面滚动到原来的位置。

在谷歌浏览器上进行多次尝试后,在评论了我的大部分代码都是在页面加载时触发的,我在Firefox上尝试过相同的功能!因此,此代码不适用于Chrome:

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

我使用animate函数并将回调传递给alert“Hello”并在顶部发出警报,然后单击“确定”并返回到刷新之前滚动的位置。

我也尝试过没有jQuery,没有任何反应

window.scrollTo(0,0);

在Firefox上运行正常。没有Javascirpt代码正在运行scrollTop(可能像社交插件,但不是我的)。

有人知道解决方法或如何修复它吗?与Chrome有什么关系?

4 个答案:

答案 0 :(得分:1)

我正在使用Chrome 41,这有效:

$("html, body").animate({
        scrollTop: 0
    }, 9000);  

答案 1 :(得分:0)

另一个可能的解决方案:

window.setTimeout(function() {
    window.scrollTo(0,0);
}, 0);

多次刷新后,我确实遇到了上述代码的间歇性问题,直到我删除了对Google托管的jQuery库的引用。它可能只是一种减轻持续刷新滥用的措施。

这里有很多好建议:The same old issue, .scrollTop(0) not working in Chrome & Safari

答案 2 :(得分:0)

Try these solution. I hope this will be helpful

$(document).scroll(function() {
        if ($(this).scrollTop() > 100) {

               if(window.innerWidth <= 768){
                        $("html, body").css({ 
                        "position" : 'fixed',
                        "top" : 0 , "margin-left" : 566});
               }else{

                    $("html, body").css({ 
                    "position" : 'fixed',
                    "top" : 0 , "margin-left" : 721});
               }
        } else {
            $("html, body").css({ "position" : 'relative', "margin-left" : 0});
        }
    })

答案 3 :(得分:0)

在jQuery中:

只需在文档加载开头添加此行(假设您在HTML页面上解析了jQuery框架):

$(document).ready(function)() {

  $(document.body).animate({scrollTop: '0px'}, 1000);// 1sec animation scroll up
  //Your rest of the code goes below -

});