前端开发之js基础(12)

js实现返回顶部

css样式

<style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            #box{
                width: 100%;
                height: 2800px;
                position: relative;
                border: 1px solid #FF0000;
            }
            #box #top{
                position: fixed;
                bottom: 20px;
                right: 20px;
                cursor: pointer;
                display: none;
            }
            #box #content #a{
                font-size: 36px;
                border: 1px solid #FF0000;
                width: 200px;
                text-align: center;
                margin: 0 auto;
            }

        </style>

html

<body>
        <div id="box">
            <div id="top"><img src="../images/topimg/Top.jpg"/></div>
            <div id="content">
                <div id="a">这是顶部</div>
            </div>
        </div>
    </body>

js控制

    <script type="text/javascript">
        var box = document.getElementById("box");
        var img = box.children[0];
        window.onload = function(){ 
            window.onscroll = function(){
                var topimg = scroll().top;
                if(topimg>800){
                    img.style.display = "block";
                }else{
                    img.style.display = "none";
                }
                leader = scroll().top;
            }
        }
        //点击回顶部
        var timer=null;
        var leader = 0;//目标位置
        var target = 0;//显示区域位置
        img.onclick = function(){
            //技术点:window.scrollTo(0,0)
            clearInterval(timer);
            timer = setInterval(function(){
                //获取步长
                var speed = (target - leader)/10;
                //二次处理步长
                speed = speed>0?Math.ceil(speed):Math.floor(speed);
                leader = leader+speed;
                //显示区域移动
                window.scrollTo(0,leader);
                if(leader===0){
                    clearInterval(timer);
                }
            },30);
        }
        //滚动事件
        function scroll(){
            if(window.pageYOffset!=null){
                return {
                    top:window.pageYOffset
                }
            }
        }


    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值