于滑动滚动条的效果

关于滑动滚动条的效果

实现效果:下拉滚动条时,上面的会有进度条,页面到底上部的滚动条也会到头;
首先先写个基本布局:

 <style>
        * {
            margin: 0;
            padding: 0;
        }

        .progressbar {
            height: 3px;
            background: skyblue;
            position: fixed;
            top: 0;
            left: 0;
            width: 30%;
            z-index: 1;
        }
    </style>
  <div class="progressbar"></div>
    <div style="height: 500px;"></div>
    <div class="demo" style="height:100px;background:#000;top:0;width:100%"></div>
    <div style="height:2000px">
    </div>

写一下js的效果:

 <script>
        let demo = document.querySelector('.demo')
        let offsetTop = demo.offsetTop

        window.onscroll = () => {
            let scrollTop = Math.floor(document.documentElement.scrollTop)
            let maxScrollTop = document.body.offsetHeight - window.innerHeight
            let percent = (scrollTop * 100 / maxScrollTop) + '%'
            document.querySelector('.progressbar').style.width = percent

            if (scrollTop > offsetTop) {
                demo.style.position = 'fixed'
            } else {
                demo.style.position = 'static'
            }

        }
    </script>

当上在上面的代码中还有一个效果就是,本来在下面的黑色模块,在滚动条向下滚动的过程中,滚动到一定的位置时会固定到顶部。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值