在新頁面中返回到前一頁瀏覽的歷史位置
這段時間在做移動端頁面遇到這么個問題:
在當前頁面點擊商品跳到詳情頁返回的時候並不是剛才停留的位置。那么該如何解決這個問題呢?通過百度搜到一個好方法推薦給大家
思路:
這是利用cookie完成的,把記錄的滾動條的位置放入cookie,下次進入這個頁面的時候讀取cookie,並設置滾動條位置為cookie中的值,從而讓滾動條回到上一次的位置,實現返回上一次瀏覽的位置,如果多個頁面要使用這個功能,那就要定義多個cookie來記錄不同頁面滾動高度,為了解決這個問題使用了一個相對簡單的方法,就是cookie的值是以頁面的文件名命名,js中創建cookie時,自動獲取網頁路徑,截取頁面的文件名,並將cookie名設置為此文件名,這樣就可以避免多次命名,從而減少了代碼
/*返回上次瀏覽位置*/
$(function () {
var str = window.location.href;
str = str.substring(str.lastIndexOf("/") + 1);
if ($.cookie(str)) {
$("html,body").animate({ scrollTop: $.cookie(str) }, 1000);
}
else {
}
})
$(window).scroll(function () {
var str = window.location.href;
str = str.substring(str.lastIndexOf("/") + 1);
var top = $(document).scrollTop();
$.cookie(str, top, { path: '/' });
return $.cookie(str);
})
/*返回上次瀏覽位置*/
這個是用jquery寫的,所以用的時候要引入jquery庫,和jquery.cookie.js