在新页面中返回到前一页浏览的历史位置

在新页面中返回到前一页浏览的历史位置

这段时间在做移动端页面遇到这么个问题:
在当前页面点击商品跳到详情页返回的时候并不是刚才停留的位置。那么该如何解决这个问题呢?通过百度搜到一个好方法推荐给大家

思路:

这是利用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
原文地址:https://www.cnblogs.com/pangwl/p/8664742.html