我有一些使用jQuery' scrollTop(0)
方法的代码在Chrome上无法正常运行(版本56.0.2924.87)。
我的代码设置了2秒超时,执行以下操作:
overflow: hidden
。这在Firefox上有效。
在Chrome上,如果在用户不滚动时执行2秒超时,则按预期工作。但是,如果在用户处于滚动过程中调用2秒超时,则似乎冻结。
我创建了包含所有代码的this Plunker。如果您在内联演示窗口中进行测试,则需要单击“在单独窗口中预览”(代码演示中右上方的蓝色按钮)。
在我的演示中,如果在不主动滚动时超时运行会发生这种情况:
即使用户当前正在页面上滚动,如何才能在Chrome上可靠地工作?
答案 0 :(得分:1)
为什么在显示时看不到div。在滚动过程中调用事件时,隐藏滚动条和页面顶部的div apper,但您的视口不在顶部位置。如果将div CSS position属性设置为fixed,它将起作用css position。 position属性的固定值是相对于视口的。
所以问题不在你的jquery代码上。
code here
并检查一下:
滚动到屏幕顶部。
一旦用户完成操作,它将删除该类并隐藏div,以便他们可以继续滚动。
我认为如果他们能够继续担任以前的职位,那将是最好的。
答案 1 :(得分:0)
如果添加stop()怎么办?在.scrollTop(0)之前?
$('html,body,document').stop().scrollTop(0);
我不是专家,但可能值得一试。
希望它有所帮助。