当前位置:软件学堂 > 资讯首页 > 网络编程 > 编程其他 > 通过JS记录滚动条位置

通过JS记录滚动条位置

2012/11/9 19:09:31作者:佚名来源:网络

移动端

【实例名称】

通过JS记录滚动条位置

【实例描述】

当页面刷新时窗体中所有的内容会被重新初始化,但一些读书网站为了还原用户刷新前查看的内容,必须记录窗体滚动条的位置。本例介绍如何记录滚动条的位置。

【实例代码】

<HTML> <HEAD> <TITLE> 记录滚动条位置 -学无忧(www.xue51.com)</title> <script language="javascript">  function SetCookie(sName, sValue)  {   date = new Date();   s = date.getDate();   date.setDate(s+1);   //设置cookie的有效期   document.cookie = sName + "=" + escape(sValue) + "; expires=" + date.toGMTString();//创建cookie  }  function GetCookie(sName)  {   var aCookie = document.cookie.split("; "); //将cookie中的数据切割成数组,方便遍历   for (var i=0; i < aCookie.length; i++)      //遍历cookie中的数据   {   var aCrumb = aCookie[i].split("=");         //将键和值分开   if (sName == aCrumb[0]) {                   //判断是否是指定的键    return unescape(aCrumb[1]);}            //返回键对应的值   }   return null;  }  function winLoad()  {   document.body.scrollLeft = GetCookie("scrollLeft"); //获取水平滚动条位置   document.body.scrollTop = GetCookie("scrollTop");  //获取垂直滚动条位置  }  function winUnload()  {   SetCookie("scrollLeft", document.body.scrollLeft)  //保存水平滚动条位置   SetCookie("scrollTop", document.body.scrollTop)    //保存垂直滚动条位置  }  window.onload = winLoad;                               //加载页面时自动执行获取cookie保存值的方法  window.onunload = winUnload;                           //关闭页面时自动执行保存cookie的方法 </script> </HEAD> <BODY> 测试行,主要为了出线滚动条<p></p> 测试行,主要为了出线滚动条<p></p> 测试行,主要为了出线滚动条<p></p> 测试行,主要为了出线滚动条<p></p> 测试行,主要为了出线滚动条<p></p> 测试行,主要为了出线滚动条<p></p> 测试行,主要为了出线滚动条<p></p> 测试行,主要为了出线滚动条<p></p> 测试行,主要为了出线滚动条<p></p> 测试行,主要为了出线滚动条<p></p> </BODY> </HTML>

【运行效果】

 记录滚动条位置运行效果

【难点剖析】

本例的重点是如何保存滚动条的位置。页面中的滚动条分为水平滚动条和垂直滚动条。水平滚动条的位置使用“document.body.scrollLeft”获取,垂直滚动条的位置使用“document.body.scrollTop”获取。保存滚动条位置使用的是Cookie,关于Cookie的操作可参考代码中的“SetCookie”和“GetCookie”方法。

【源码下载】

为了JS代码的准确性,请点击:通过JS记录滚动条位置 进行本实例源码下载