jQuery scrollTop停止使用最新版本的基于webkit的浏览器(Chrome版本61.0.3163.100)?

时间:2017-10-11 01:51:07

标签: javascript jquery google-chrome

有趣的是,这已在所有浏览器上运行多年,但现在只停止使用最新版本的基于webkit的浏览器(Chrome和Opera)。 就在一个月前 它仍然有效,但现在不再工作了:

$(document.body).scrollTop(0);
  //or using animation
$(document.body).animate({
  scrollTop:0
}, 500, "swing");

控制台中没有打印任何错误,它根本就不滚动。 相同的代码在Microsoft Edge等其他浏览器中运行良好。

那么有没有人能够发现基于webkit的浏览器有什么问题,或者jQuery应该更新以便与它们一起使用?

请注意我不想找到滚动它的方法(因为我知道我们不需要jQuery而且总是有解决办法),我只是想要一些解释,因为那个代码已经使用多年,不应该永远不会停止工作。它将破坏许多网站的用户体验。

Demo

2 个答案:

答案 0 :(得分:1)

不确定这是否是更新基于webkit的浏览器的意图,但看起来document.body不被视为内部所有元素的直接容器(尽管如果在其上应用overflow:hidden,内部的内容将被预期绊倒)。滚动条似乎属于document.documentElement(由html标记表示)。因此,如果我们将document.body替换为document.documentElement,那么它会再次起作用。但是这可能不适用于其他浏览器(例如Microsoft Edge),因此可以安全地包含两者,例如:

$("html,body") ...
//or
$([document.documentElement, document.body]) ...

基于webkit的浏览器更新仍然令人困惑。

答案 1 :(得分:0)

对我来说,scrollTop()也停止了工作。从CSS中删除html的高度 - 奇迹,再次工作! 发现它在互联网的深处......