jScrollPane如何存储滚动位置?

发布于 2024-12-27 02:58:00 字数 261 浏览 0 评论 0原文

我正在使用 JQuery 插件 jScrollPane。

一位客户问我,当用户滚动项目列表并单击其中一项,然后在浏览器中单击返回或从菜单返回到该页面时,滚动框是否可以位于相同位置。 :S

这意味着将插件计算的“top”css属性存储到mouseUp上的cookie中(当他们放开滑块时,存储“top”的值),然后当它们返回时,我可以检查该cookie并将其设置到该位置。

无论如何,这就是想法,我什至不知道从哪里开始。

感谢您的任何回复。 :)

I'm using the JQuery plugin jScrollPane.

A client has asked me if when a user scrolls the list of items, and clicks on one, then clicks back in their browser or goes back to that page from a menu, can the scroll box be at the same position. :S

This would mean storing the "top" css attribute computed by the plugin into a cookie on mouseUp (when they let go of the slider, store the value of "top") then when they return, I can check for that cookie and set it to that position.

That's the idea anyway, I've no idea even where to be begin with this.

Thanks for any responses. :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尐偏执 2025-01-03 02:58:00

这是我的解决方案。

滚动条的位置保存到 localstorage 中,然后当页面再次加载时,无论是通过刷新还是从另一个页面返回,如果 localstorage 的值大于 0 表示滚动条的顶部(默认,未滚动位置),则滚动条会滚动到那个位置。

var element = $(".scroll-pane").jScrollPane({showArrows:true});
if(element != undefined) {
  var api = element.data("jsp");
  $(function() {
    if(parseInt(localStorage.getItem("ScrollPosition")) > 0) {
      api.scrollToY(parseInt(localStorage.getItem("ScrollPosition")))
    }
    $(".scroll-pane").bind("jsp-scroll-y", function(event, scrollPositionY, isAtTop, isAtBottom) {
      localStorage.setItem("ScrollPosition", scrollPositionY)
    }).jScrollPane()
  })
}
;

Here's my solution.

The position of the scrollbar is saved to localstorage, then when the page loads again, either by refresh or back from another page, if localstorage has a value greater than 0 which represents the top of the scrollbar (default, unscrolled position), it scrolls to that position.

var element = $(".scroll-pane").jScrollPane({showArrows:true});
if(element != undefined) {
  var api = element.data("jsp");
  $(function() {
    if(parseInt(localStorage.getItem("ScrollPosition")) > 0) {
      api.scrollToY(parseInt(localStorage.getItem("ScrollPosition")))
    }
    $(".scroll-pane").bind("jsp-scroll-y", function(event, scrollPositionY, isAtTop, isAtBottom) {
      localStorage.setItem("ScrollPosition", scrollPositionY)
    }).jScrollPane()
  })
}
;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文