有趣的是,这已在所有浏览器上运行多年,但现在只停止使用最新版本的基于webkit的浏览器(Chrome和Opera)。 就在一个月前 它仍然有效,但现在不再工作了:
$(document.body).scrollTop(0);
//or using animation
$(document.body).animate({
scrollTop:0
}, 500, "swing");
控制台中没有打印任何错误,它根本就不滚动。 相同的代码在Microsoft Edge等其他浏览器中运行良好。
那么有没有人能够发现基于webkit的浏览器有什么问题,或者jQuery应该更新以便与它们一起使用?
请注意我不想找到滚动它的方法(因为我知道我们不需要jQuery而且总是有解决办法),我只是想要一些解释,因为那个代码已经使用多年,不应该永远不会停止工作。它将破坏许多网站的用户体验。
答案 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的高度 - 奇迹,再次工作! 发现它在互联网的深处......