9
我不知道是否有人仍在使用Sammy.js,但我發現它非常適合我對輕量級路由和模板庫的需求。如果有人有其他想法,請告訴我。Sammy.js緩存和回滾歷史記錄時的位置
我的問題是,當我有一個長頁面,我向下滾動時,點擊此頁面上的鏈接並返回,整個頁面被重新加載(在Sammy中,GET路徑被調用),並跳轉到頁面頂部。
我的問題是:有沒有辦法讓Sammy在回顧歷史時緩存頁面並保持滾動位置?
在此先感謝。
我不知道是否有人仍在使用Sammy.js,但我發現它非常適合我對輕量級路由和模板庫的需求。如果有人有其他想法,請告訴我。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);
}
作爲一種解決辦法,我建議,http://stackoverflow.com/a/5651372/2346893與http://stackoverflow.com/a/10115269/2346893相結合,您還可以添加如果您不想手動執行該操作,則在滾動瀏覽頁面時將當前可見元素的id添加到散列歷史記錄中。 –
您可以使用localstorage將scrolltop和url作爲參數傳遞給每個訪問頁面。 –