【问题标题】:Javascript - Scroll page to last position of previous page when the back button is hitJavascript - 按下后退按钮时将页面滚动到上一页的最后位置
【发布时间】:2012-03-25 16:27:24
【问题描述】:

我决定制作自己的“永无止境”滚动页面,它完全适合我的需求,而不是适应一些无法完全按照我希望的方式工作的广泛类。

现在,当一切都像魅力一样运作时,最后一件事仍然存在。按下浏览器的后退按钮时保留滚动位置。每次您到达页面底部时,我都会更改 url 的哈希 # 部分。当点击返回按钮时,它会显示等待图标,然后加载动态内容。

Firefox 滚动之后正好放置页面被滚动(好)。

Opera 和 Safari 加载的状态似乎与之前完全相同,因此动态内容似乎已经预取并显示(很好)。

但 IE 和 Chrome 想要在动态内容加载之前滚动,以后不会再尝试。 IE 卡在页面顶部,Chrome 卡在中间某处(动态内容显示之前的页面底部)。

现在,我可以做些什么来解决这个问题?理论上,当检测到任何点击时,我可以将当​​前滚动位置存储到 url 哈希中。然后加载上一页,我可以简单地解析哈希和 ScrollTop()。但是由于某种原因,这

$(document).live("click", function() { window.alert("gotcha"); });

反正对我没用。

【问题讨论】:

  • 我想你需要给我们看一些代码吗?

标签: javascript jquery scrolltop


【解决方案1】:

document 没有可点击的内容。 document.documentElement 是根 <html> 节点,因此将事件附加到该节点,或在适当的情况下附加到 window

【讨论】:

  • 谢谢,它有效。我已经尝试过了,但当时肯定还有其他问题。 $("html a") 效果更好,因为它可以防止 url 仅通过单击来更改。每次点击都存储在浏览器的历史记录中。这就是为什么我改变主意将当前的 scrollTop() 存储到窗口滚动侦听器中的散列(太多的条目会完全破坏浏览器中的后退按钮)。
猜你喜欢
  • 2013-05-07
  • 1970-01-01
  • 2021-04-04
  • 1970-01-01
  • 2018-09-30
  • 1970-01-01
  • 2015-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多