Sammy.js缓存和滚动位置时,返回历史
Sammy.js cache and scroll position when going back in history
我不知道是否有人还在使用Sammy.js,但我发现它非常适合我对轻量级路由和模板库的需求。如果有人有其他想法,请告诉我。
我的问题是,当我有一个长页面,向下滚动时,单击该页面上的链接并返回,整个页面被重新加载(在Sammy中,调用GET路由),然后跳到页面顶部。
我的问题是:有没有办法让萨米缓存页面并在返回历史时保持滚动位置?
提前谢谢。
您可以使用localStorage作为将url scrolltop存储为一对的替代方法。这样,浏览器就会记住指定url的滚动停止位置。
var scroltop,url;
$(window).scroll(function() {
scroltop = $(this).scrollTop();
url = window.location.href;
clearTimeout($.data(this, 'scrollTimer'));
$.data(this, 'scrollTimer', setTimeout(function() {
localStorage.setItem(url,scroltop);
}, 250));
});
if(localStorage.getItem(window.location.href)) {
url = window.location.href;
scroltop = localStorage.getItem(url);
$(window).scrollTop(scroltop);
}
JSbin示例
相关文章:
- 输入类型按钮返回历史记录并返回顶部
- HTML5历史记录-返回上一个完整页面按钮
- Sammy.js缓存和滚动位置时,返回历史
- 如何返回可用的历史记录状态数
- 引导选项卡不适用于历史记录.返回选项
- JS函数在浏览器历史记录中返回特定域的上次浏览页面
- 历史API/Angular:如何返回到预先确定的URL
- 单击按钮时,页面将返回历史记录
- 测试对历史记录 API 的支持在 IE 中返回 true
- 带有框架的浏览器中的按钮返回(历史记录转发不起作用)
- 当使用历史API时,我应该如何处理返回到加载的初始页面
- 谷歌浏览器“;返回“;以及“;向前“;历史
- 使用Javascript:如何创建'返回'如果存在'It’这个选项卡或窗口没有历史记录
- Javascript preventDefault历史记录返回
- 如何避免页面出现在“;返回“;按钮历史记录
- 返回链接,但不使用历史记录
- Javascript历史返回清除表单
- & # 39;智能# 39;Wordpress自定义帖子类型的历史返回按钮
- 需要点击两次返回历史记录(使用pushState)
- 与window.history.pushState组合返回历史记录时,页面不会重新加载