2013-07-23 49 views
0

我想保存/确定滚动状态(当前位置),因此当用户回到上一个站点时,他可以从他离开的位置继续工作。如何保存滚动状态

我可以连续保存滚动位置到全局变量并在用户回来时读取它吗?

回答

3

使用javascript,您可以找出滚动高度,然后将其设置为cookie。这不是一个好方法,但它是可能的。

找到滚动高度:

$(document).ready(function(){ 
    $(window).scroll(function(){ 
     var scrolled = $(this).scrollTop(); 
     console.log(scrolled); 
    }); 
}); 

我会建议使用jQuery的cookie的插件将其设置到一个cookie或会话: http://archive.plugins.jquery.com/project/Cookie http://www.sitepoint.com/eat-those-cookies-with-jquery/

则变量添加到cookie:

$(document).ready(function(){ 
    $(window).scroll(function(){ 
     $.removeCookie("mySiteScrolled"); 
     var scrolled = $(this).scrollTop(); 
     $.cookie("mySiteScrolled", scrolled); 
     console.log(scrolled); 
    }); 
}); 

然后添加“Check for scrolled”语句

$(document).ready(function(){ 
    var scrolled = $.cookie("mySiteScrolled"); 
    if(scrolled){ 
     $(window).scrollTop(scrolled); 
    } 
    $(window).scroll(function(){ 
     $.removeCookie("mySiteScrolled"); 
     var scrolled = $(this).scrollTop(); 
     $.cookie("mySiteScrolled", scrolled); 
     console.log(scrolled); 
    }); 
}); 
+0

谢谢你的代码...但是我已经将这段代码包含在我的脚本中,并且包含了jquery cookie脚本,它不起作用。什么都没有发生,不应该你的代码保存当前的滚动状态,并当我回到以前的网站时恢复它 –

+0

你使用的是什么版本的jQuery?你有没有测试代码的任何部分?有错误吗?您是否检查过您是否至少有一个正在制作的曲奇?你有什么尝试? – ntgCleaner

+0

@ user123_456希望在此标记您,以便您了解警报。 – ntgCleaner

0

我可能会使用jQuery来轻松确定scoll位置$(document).scrollTop();并使用本地存储设置/获取位置。