用js+cookie记录滚动条位置

本文介绍了一种使用JavaScript记录并恢复网页滚动条位置的方法。通过设置和获取cookie来保存滚动条的位置信息,当用户再次访问页面时能够回到之前的位置。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META NAME="Author" CONTENT="宝玉([url]http://www.nwpubbs.net[/url] [url]http://www.webuc.net[/url])">
<TITLE> 记录滚动条位置 </TITLE>

<script language="javascript">
    <!--
    function SetCookie(sName, sValue)
    {
        date = new Date();
        s = date.getDate();
        date.setDate(s+1);            //expire time is one month late!, and can't be current date!
        document.cookie = sName + "=" + escape(sValue) + "; expires=" + date.toGMTString();
    }
    function GetCookie(sName)
    {
        // cookies are separated by semicolons
        var aCookie = document.cookie.split("; ");
        for (var i=0; i < aCookie.length; i++)
        {
        // a name/value pair (a crumb) is separated by an equal sign
        var aCrumb = aCookie[i].split("=");
        if (sName == aCrumb[0]) {
            return unescape(aCrumb[1]);}
        }
        
        // a cookie with the requested name does not exist
        return null;
    }

    function fnLoad()
    {
        document.body.scrollLeft = GetCookie("scrollLeft");
        document.body.scrollTop = GetCookie("scrollTop");
    }

    function fnUnload()
    {
        SetCookie("scrollLeft", document.body.scrollLeft)
        SetCookie("scrollTop", document.body.scrollTop)
    }

    window.onload = fnLoad;
    window.onunload = fnUnload;

    // -->
</script>
</HEAD>

<BODY>
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
dd
</BODY>
</HTML>

本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/6131.htm

HTML页面设置简单滚动条位置可从不同方面实现。 可以使用JavaScript获取滚动条位置并控制页面滑动。在app原生和前端h5混合开发中,如城市列表选择、银行列表选择等功能场景,需要获取滚动条位置并滑动到锚点位置。不过,文中未给出具体代码实现获取滚动条位置和滑动到锚点位置的方法,但可借助相关属性操作。 Element.scrollHeight是一个只读属性,它是元素内容高度的度量,包括因溢出导致视图中不可见的内容。在没有垂直滚动条的情况下,scrollHeight值与元素视图填充所有内容所需的最小值clientHeight相同,且包括元素的padding,但不包括元素的border和margin,同时也涵盖::before和::after这样的伪元素,可利用该属性辅助判断滚动条相关情况[^3]。 还可以使用while循环来处理滚动祖先元素,代码如下: ```javascript while(parent && parent.tagName!='BODY' && parent.tagName!='HTML'){ // account for any scrolled ancestors } ``` 此代码可用于处理滚动祖先元素,但未明确体现设置滚动条位置的直接操作,不过可在合适逻辑中结合其他属性和方法来设置滚动条位置[^5]。 另外,若要记录滚动条位置,可使用JavaScript编写函数,如设置Cookie记录滚动条位置,示例代码如下: ```html <!DOCTYPE html> <html> <head> <title>记录滚动条位置</title> <script language="javascript"> function SetCookie(sName, sValue) { date = new Date(); s = date.getDate(); // 后续可添加更多逻辑来完善设置Cookie的操作 } </script> </head> <body> <!-- 页面内容 --> </body> </html> ``` 该代码定义了SetCookie函数,但未完成完整的记录滚动条位置逻辑,可进一步完善该函数,结合页面滚动事件等操作来实现记录滚动条位置的功能[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值