原生js实现返回顶部特效

Posted Alice_Daily

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生js实现返回顶部特效相关的知识,希望对你有一定的参考价值。

index.html

<!DOCTYPE html>
<html>
   <head>
     <meta charset="UTF-8">
     <title>Document</title>
     <link herf="index.css">       
   </head>
  <body>
        <span id="icon"></span>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <script src="scroll.js"></script>
                <script src="index.js"></script>
       </body>
</html>

index.css

            *{
                padding: 0;
                margin: 0;
                border: none;
                list-style: none;
            }
            body{
                background-color: #ddd;
            }
            p{
                text-align: center;
                font-size: 25px;
                margin-bottom: 30px;
            }
            #icon{
                width: 43px;
                height: 43px;
                background: url("./images/to_top.png") no-repeat;
                background-size: 100% 100%;
                position: fixed;
                bottom: 15px;
                right: 20px;
                display: none;

            }

index.js

             window.onload=function(){
                 //定义变量
                 let scroll_top=0;
                 let begin=0,end=0,timer=null;
                 //监听窗口滚动事件
                 window.onscroll=function(){
                     scroll_top=scroll().top;
                     //显示和隐藏
                     scroll_top>0?show($("icon")):hidden($("icon"));
                 }
                 //监听图标的点击事件
                 $("icon").onclick=function(){
                     //清除定时器
                     clearInterval(timer);
                     //开启定时器
                     timer=setInterval(function(){
                        begin+=(end-begin)*0.2;
                        window.scrollTo(0,begin);
                        //判断运动结束条件,清除定时器
                        if(Math.round(begin)===end){
                            clearInterval(timer);
                        }
                        
                     },30);
                 }
             }
             function $(id){
                 return typeof id==="string"?document.getElementById(id):null;
             }
             function show(obj){
                 return obj.style.display="block";
             }
             function hidden(obj){
                 return obj.style.display="none";
             }

scroll.js

function scroll(){
    if(pageYOffset!==null){
        return {
            top:window.pageYOffset,
            left:window.pageXOffset
        }
    }else if(document.compatMode===CSS1Compat){
        return {
            top:document.documentElement.scrollTop,
            left:document.documentElement.scrollLeft
        }
    }
    return {
        top:document.body.scrollTop,
        left:document.body.scrollLeft
    }
}

 

以上是关于原生js实现返回顶部特效的主要内容,如果未能解决你的问题,请参考以下文章

原生js,实现“返回顶部”效果

原生js实现缓动返回顶部

原生js-返回顶部

原生js返回顶部

原生JS返回顶部,带返回效果

原生态js,返回至顶部