【问题标题】:Chrome 61 jQuery scrolling not working anymoreChrome 61 jQuery 滚动不再起作用
【发布时间】:2018-02-14 17:31:47
【问题描述】:

从 Chrome 61 开始,我在滚动浏览 jquery 3.2.1 命令时遇到了很多问题。它不再滚动。

Chrome 向我提供控制台通知(该页面最后更新时间为 2017 年 12 月)。

Blink 推迟了一项任务,以使滚动更流畅。您的计时器和网络任务的运行时间应少于 50 毫秒,以避免这种情况。请参阅https://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/railhttps://crbug.com/574343#c40 了解更多信息。

例子:

console.log("start");
$('body').animate({ 
  scrollTop : $('#id').offset().top - 100
},3000,function(e) {
  console.log("end");
});

有谁知道原因是什么以及我能做些什么?

【问题讨论】:

    标签: jquery css google-chrome scroll


    【解决方案1】:

    似乎溢出设置为当前版本中的 html(如在 -moz 中。查看我试了一会儿的this question

    $(function() {
        console.log("start");
        $('html').animate({
            scrollTop: $('#my-id').offset().top - 100
        }, 3000, function(e) {
            console.log("end");
        });
    });
    

    https://jsfiddle.net/4ebggecv/

    或者您可以添加这些样式并保持动画效果

    html {
        overflow: hidden;
        height: 100%;
    }
    body {
        height: 100%;
        overflow: auto;
    }
    

    https://jsfiddle.net/ykyt58ac/1/

    【讨论】:

    • 我没有收到问题中所述的警告,但只需将其从 $('body').animate(...) 更改为 $('html').animate(...) 即可解决我的问题。这只是在 Chrome 61 之后才成为问题
    猜你喜欢
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 2014-05-08
    • 2018-01-30
    • 2017-06-10
    • 1970-01-01
    相关资源
    最近更新 更多