2017-09-06 54 views
9

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

Chrome给我的控制台通知(该页面是最后更新2017年4月12日)。

眨眼推迟了一项任务,以使滚动更顺畅。你的计时器和网络任务应该运行少于50ms以避免这种情况。有关更多信息,请参阅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"); 
}); 

有没有人有一个想法是什么原因是什么,我可以用它做什么?

回答

10

看来,溢出,并在当前版本的HTML(像-moz。退房this question,我做了一个同时GO)

$(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/

+3

我没有收到问题中提到的警告,只是将它从$('body')。animate(...)'改为'$('html')。animate(...)'fixed我的问题。这只是Chrome 61之后的问题 –