【问题标题】:Maintaining Scroll Position With Back Button and Ajax Dom Manipulation使用返回按钮和 Ajax Dom 操作保持滚动位置
【发布时间】:2014-01-31 15:52:51
【问题描述】:

我正在使用无限滚动的 ajax 加载结果,但是,当您单击列表中的项目并离开页面,然后单击返回按钮时,您将返回列表顶部。

我不知道如何让用户回到他们离开的位置。

查看我正在处理的网站: https://www.studenthouses.com/search/manchester/

向下滚动几次,然后单击一个属性,然后单击返回,您就会明白我的意思了。

我不记得结果位置并加载它们,因为它会花费太长时间,所以我真的需要浏览器在返回页面时记住 DOM,或者以某种方式缓存它。

有解决办法吗?

非常感谢

【问题讨论】:

  • 它适用于 Firefox 26.0

标签: javascript jquery html ajax


【解决方案1】:

当然有,而且是小菜一碟。好吧,实际上它是一个 cookie :)

解决这个问题不需要太多。

首先,在这里获取一些 cookie:Cookie API

其次,您必须以某种方式对 cookie 中的数据进行编码。如果您有多个这样的页面,则必须以某种方式将它们分开或使用键值对并存储如下内容:

manchester=3522

每当您进入页面时,加载 cookie,等待页面完全展开(您使用 AJAX 或类似的,您必须等待页面被展开 em>,window.onload 不行)。

如果没有cookie,跳过这一步:

  • 向下滚动页面到您从 cookie 加载的偏移量:scrollTo

接下来,每当页面滚动时,修改 cookie。为避免抖动,您需要以轮询 的方式进行。在大约 500 毫秒时使用 setInterval() 并检查用户是否更改了滚动位置。如果他这样做了,请使用新值保存 cookie。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2016-05-05
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多