回到顶部效果

主要用到的知识:
慕课网截图
获取滚动条距离顶部的高度:

  1. document.documentgetElement.scrollTop(IE)

  2. document.body.scrollTop(chrome)

获取页面可视区的高度:

  1. document.documentElement.clientHeight
  2. document.body.clientHeight

<a href="#">点击a锚点可直接回到顶部
注意:

  1. 点击时速度由快到慢
  2. 滚动条滑到第二页面才出现

var osTop = document.documentElement.scrollTop || document.body.scrollTop;
var ispeed = Math.floor(-osTop / 6);
document.documentElement.scrollTop = document.body.scrollTop = osTop +ispeed;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>Javascript 返回顶部</title>
    <style type="text/css">
        #btn {width:40px; height:40px; position:fixed; right:65px; bottom:10px; display:none; background:url(images/top_bg.png) no-repeat left top;}
        #btn:hover {background:url(images/top_bg.png) no-repeat 0 -39px;}
        .bg {width:1190px; margin:0 auto;}
    </style>
    <script type="text/javascript">
        window.onload = function(){
            var obtn = document.getElementById('btn');
            //获取页面可视区的高度
            var clientHeight = document.documentElement.clientHeight || document.body.clientHeight;
            var timer = null;
            var isTop = true;

            obtn.onclick = function(){

                //设置定时器
                timer = setInterval(function(){
                //获取滚动条距离顶部的高度
                    var osTop = document.documentElement.scrollTop || document.body.scrollTop;
                    if (osTop >= clientHeight){
                        toTopButton.style.display = "block";
                    }else {
                        toTopButton.style.display = "none";
                    }
                    if (!isTop){
                        clearInterval(timer);
                    }
                    isTop = false;

                var ispeed = Math.floor(-osTop / 6);
                document.documentElement.scrollTop = document.body.scrollTop = osTop +ispeed;

                isTop = true;

                if (osTop == 0){
                    clearInterval(timer);
                }
            },30); 
        };
    };

    </script>
</head>
<body>
    <a href="javascript:;" id="btn" title="回到顶部"></a>
    <div class="bg">
        <img src="images/tb_bg.jpg" alt="" />
    </div>
</body>
</html>

以上根据慕课网回到顶部效果视频总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值