zoukankan      html  css  js  c++  java
  • 原生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
        }
    }
  • 相关阅读:
    laravel passport 全局捕获 401 ,返回数据给前台
    服务器上每次执行git pull,都提示输入用户名和密码
    jQuery-File-Upload 使用,jQuery-File-Upload上传插件
    Java返回结果封装,SpringBoot返回结果封装
    Java Spring文件上传,Java文件上传,Java通用文件上传
    Mdb文件工具类,UCanAccess使用,Access数据库操作
    Access MDB文件解析查询,Access数据库解析工具类MdbUtils
    jquery easyui combogrid Uncaught TypeError:Cannot read property
    soap调用Jar包冲突,SOAPMessageContext
    js打开新窗口,js打开居中窗口,js打开自定义窗口
  • 原文地址:https://www.cnblogs.com/zhang-jiao/p/9842380.html
Copyright © 2011-2022 走看看