回到顶部按钮的制作

功能:

1.按钮在滚动调滚动到第二屏时显示;

2.点击按钮,滚动条由快到慢回到顶部;

3.回到顶部过程中若鼠标滚动滚动条则停止回到顶部;


HTML代码:

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

css代码:

*{
            padding:0;
            margin:0;
        }
        .container{
            width: 1190px;
            margin: 0 auto;
            position: relative;
        }
        #btn{
            width: 40px;
            height: 40px;
            overflow: hidden;
            position: fixed;
            right: 20px;
            bottom: 20px;
            background: url("images/top_bg.png") no-repeat left top;
            display: none;
        }
        #btn:hover{
            width: 40px;
            height: 40px;
            background: url("images/top_bg.png") no-repeat left -40px;
        }

js代码:

<script type="text/javascript">
    function addLoadEvent(func){
        var oldοnlοad=window.onload;
        if(typeof window.onload!='function'){
            window.οnlοad=func();
        }
        else{
            window.οnlοad=function(){
                oldonload();
                func();
            }
        }
    }
    function startMain(){
        var btn=document.getElementById("btn");
        var timer=null;//定时器
        var isGoUp=true;//滚动条在滚动
        var clientHeight=document.documentElement.clientHeight;//获取页面可视区的高度
        //滚动条滚动时触发
        window.οnscrοll=function(){
            var distance=document.documentElement.scrollTop||document.body.scrollTop;
            if(distance>=clientHeight){
                btn.style.display='block';
            }else{
                btn.style.display='none';
            }
            if(!isGoUp){
                clearInterval(timer);
            }
            isGoUp=false;
        };
        btn.οnclick=function(){
            timer=setInterval(function(){
                //获取与顶部的距离
                isGoUp=true;
                var distance=document.documentElement.scrollTop||document.body.scrollTop;//兼容IE
                if(distance==0){
                    clearInterval(timer);
                }
                //减少距离顶部的距离
                var speed=Math.floor(-distance/6);
                document.documentElement.scrollTop=document.body.scrollTop=distance+speed;
//                console.log(distance);
            },30)
        }
    }
    addLoadEvent(startMain);
</script>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值