zoukankan      html  css  js  c++  java
  • 详解原生JS回到顶部

    第一次知道可以用超链接(锚点)实现回到顶部的时候我是很震惊的,想着原来可以这么简单啊!但是作为一个正在学习JS的小白,不能就这么轻易止步,所以查资料自己整了一个JS返回顶部

    HTML代码:

    ?
    1
    2
    3
    4
    5
    <div class="container">
        <p>你好哇</p>
        ...
    </div>
    <div id="top">回到顶部</div>

    CSS代码:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    .container{
        border: 1px solid black;
    }
    #top{  
        position: fixed;
        padding: 10px;
        width: 20px;
        border: 1px solid black;
        box-shadow: 0 0 2px #333;
        right: 20px;
        bottom: 20px;
    }
    #top:hover{
        cursor: pointer;
    }

    JS代码

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    //创建变量
    var scroll_Top = document.getElementById('top');
      
    //用最常用的scrollTop属性实现
    var timer = null;
    function scrollTop(){
        // 取消一个通过调用requestAnimationFrame()方法添加到计划中的动画帧请求.
        cancelAnimationFrame(timer);
        /* requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,
        在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率
        一般来说,这个频率为每秒60帧。 */
        timer = requestAnimationFrame(function sTop(){
            var top = document.body.scrollTop || document.documentElement.scrollTop;
            if(top > 0){
          //使用定时器,将scrollTop的值每次减少20(自行设置),直到减少到0,则滚动完毕
                document.body.scrollTop = document.documentElement.scrollTop = top - 20;
                timer = requestAnimationFrame(sTop);
            }else{
                cancelAnimationFrame(timer);
            }
        });
    }
    scroll_Top.addEventListener('click', scrollTop, false);
  • 相关阅读:
    css实现导航栏切换动画
    ubuntu系统下mysql重置密码和修改密码操作
    Ubuntu16.04 安装配置nginx,实现多项目管理、负载均衡
    每天一点点之数据结构与算法
    vuex基本使用
    在 npm 中如何用好 registry
    django模板
    skywalking 通过python探针监控Python 微服务应用性能
    Centos7新加磁盘扩容根分区
    python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
  • 原文地址:https://www.cnblogs.com/good10000/p/10605834.html
Copyright © 2011-2022 走看看