zoukankan      html  css  js  c++  java
  • 滚动指示器

    现在很多博客都会有这样一种效果,当滚动条上下移动时,顶部或者底部会有进度条一样的效果,以显示当前滚动的位置,这样的效果就叫做滚动指示器。代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <style type="text/css">
        .bar{
          position: fixed;
          top: 0;
          height: 10px;
          background-color: #55a;
        }
        .content{
            height: 2000px;
        }
      </style>
    </head>
    <body>
      <div class="bar"></div>
      <div class="content"></div>
    
      <script type="text/javascript">
        var body = document.body,
            html = document.documentElement,
            bar = document.querySelector('.bar');
    
        //初始化滚动指示器宽度
        bar.style.width = body.scrollTop || html.scrollTop / (body.clientHeight - html.clientHeight) * body.clientWidth + 'px';
        window.onscroll = function(){
          var scrollTop = body.scrollTop || html.scrollTop;//获取scrollTop,因为FireFox下需要用document.documentElement.scrollTop来获取
          bar.style.width = scrollTop / (body.clientHeight - html.clientHeight) * body.clientWidth + 'px';
        }
    
      </script>
    </body>
    </html>

    原理很简单,通过scrollTop / (body的内容区域高度 - 可视区域的高度)的比,来得出当前滚动条相对于内容区域的位置,再跟内容区域相乘就可以了。

    推荐这篇文章,用css来实现的。无奈css功底不够,只能用js来实现了。

  • 相关阅读:
    springboot 整合 memcached l
    文件处理工具类 l
    执行脚本工具类 l
    LRU l
    归并排序 l
    Redis 数据类型 l
    git 常用操作命令 唏嘘
    postmanPOST请求 status 415错误 唏嘘
    MySQL 启动和关闭MySQL服务 唏嘘
    OO和OP
  • 原文地址:https://www.cnblogs.com/11lang/p/6730495.html
Copyright © 2011-2022 走看看