有趣的是,这已经在所有浏览器上工作了很多年,但现在只是停止在最新版本的基于webkit的浏览器(Chrome和Opera)上工作。就在一个月前它还在工作,但现在不再工作了:
$(document.body).scrollTop(0);
//or using animation
$(document.body).animate({
scrollTop:0
}, 500, "swing");
控制台中没有打印任何错误,只是根本不能滚动。同样的代码在其他浏览器中运行良好,比如Microsoft Edge。
那么,有没有人能找出基于webkit的浏览器出了什么问题,或者jQuery应该更新才能与之协同工作?
请注意,我不想找到一种滚动它的方法(因为我知道我们不需要jQuery,而且总是有变通的办法),我只想要一些关于这方面的解释,因为这些代码已经使用了很多年,不应该停止工作。它会破坏很多网站的用户体验。
发布于 2017-10-11 10:35:09
不确定这是否是基于webkit的浏览器更新的目的,但看起来document.body
并不被视为内部所有元素的直接容器(尽管如果在其上应用overflow:hidden
,内部内容将被意外地删除)。滚动条似乎属于document.documentElement
(由html
标记表示)。因此,如果我们用document.documentElement
替换document.body
,它就会再次工作。但这可能不适用于其他浏览器(如Microsoft Edge),因此将两者都包含进来是安全的,例如:
$("html,body") ...
//or
$([document.documentElement, document.body]) ...
尽管如此,基于webkit的浏览器的这一更新仍然让人非常困惑。
发布于 2018-06-11 06:25:40
对我来说,scrollTop()也停止了工作。删除高度从html的CSS -奇迹,再次工作!在互联网的某个地方找到的.
https://stackoverflow.com/questions/46678521
复制相似问题