我不知道有人还在使用Sammy.js,但是我发现它完全适合我的轻量级路由和模板库的需要.如果有其他想法,请让我知道.
我的问题是,当我有一个长的页面,我向下滚动时,点击此页面上的链接并返回,整个页面被重新加载(在Sammy,GET路由被调用),它跳到页面的顶部.
我的问题是:有没有办法让Sammy缓存页面并保持滚动位置回到历史记录?
提前致谢.
解决方法
您可以使用localStorage作为替代方式来存储url-scrolltop作为一对.这样浏览器会记住指定网址的srolltop位置.
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); }