1

我遇到了非常奇怪的 Google Chrome 行为。

在我的 JavaScript 中,我在页面加载时滚动到特定部分。

代码很简单:

$('body').animate({ scrollTop: $('nav ul').position().top }, 1000);

但问题是,当它滚动页面时,谷歌浏览器会重新加载页面并且 JavaScript 不会再次触发。

也许有人以前经历过这种情况并有解决方案或想法为什么会发生这种情况?

谢谢!

PS忘了举个活生生的例子(不要当作广告) - csspandemic.com

PPS 正如人们所建议的那样,它在 Windows 上运行良好,并且只在 OSX 上发生。(我改了标题。)

4

1 回答 1

1

看起来这是 Chrome 中的一个错误:http: //crbug.com/61674。Chrome 不会重新加载页面——它会将滚动位置恢复到上次加载页面的位置。如果你滚动到页面中的不同位置然后刷新,你会看到跳转到了最后一个位置;相反,如果您以隐身模式加载页面,它可以正常工作,因为没有任何缓存的滚动位置。

不幸的是,我不知道有什么好的解决方法。我尝试更改 location.hash 以使缓存的滚动位置无效,但无济于事。

于 2012-11-28T12:30:10.757 回答