簡體   English   中英

回到歷史記錄時,Sammy.js緩存並滾動位置

[英]Sammy.js cache and scroll position when going back in history

我不知道是否有人仍在使用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);   
}

JSbin的例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM