温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

js如何自定义滚动条

发布时间:2021-09-27 14:43:42 来源:亿速云 阅读:172 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关js如何自定义滚动条的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

实现:

<!DOCTYPE html><html lang=""><head>  <meta charset="utf-8">  <title></title>  <style>    * {margin: 0;padding: 0;}    html,body { width: 100%;height: 100%;}    #box { width: 100%; height: 100%; overflow: hidden;}    /*一个个划过去的页面块*/    .ball {      width: 100%;      height: 500px;      font-size:100px;      font-weight:bold;      color: skyblue;      text-align: center;      line-height:500px;    }    /*//滚动栏*/    #scroll {      width: 20px; height: 96%;      position: fixed; top: 2%; right: 5px;      border-radius: 10px; background-color: rgba(235, 233, 233, 0.5);      z-index: 9998; opacity: 0;    }    /*//滚动栏上的小长条*/    #scrollBar {      position: absolute; z-index: 1;/*//定在上面*/      width: 20px; height: 40px;      border-radius: 10px;      left: 0; top: 0; background-color: red;opacity: 0.6;    }  </style></head><body ><p id="box">  <p id="content">    <!--//营造p色块交替的感觉-->    <p class="ball" >1</p>    <p class="ball" >2</p>    <p class="ball" >3</p>    <p class="ball" >4</p>    <p class="ball" >5</p>    <p class="ball" >6</p>  </p></p><p id="scroll">  <p id="scrollBar"></p></p></body></html><script type="text/javascript">  var content = document.getElementById("content");  var box = document.getElementById("box");  var scroll = document.getElementById("scroll");  var scrollBar = document.getElementById("scrollBar");  var Step = {    value : 0,    size : 20,    maxVal : Math.ceil((content.offsetHeight-document.body.offsetHeight)/20),    getCurrentVal:function(){      return this.value;    },    next:function(){      if(this.value==this.maxVal) return;      this.value++;    },    pre:function(){      if(this.value==0) return;      this.value--;    },    getDistance:function(){      return this.getCurrentVal()*this.size;    },    update:function(){      this.maxVal = Math.ceil((content.offsetHeight-document.body.offsetHeight)/this.size);    }  }  window.addEventListener("resize",function(){    Step.update();  });  box.addEventListener("DOMMouseScroll",scrollfunc);  box.addEventListener("mousewheel", scrollfunc);  function scrollfunc(e){    if(e.type=="mousewheel"){ //非FF      e.wheelDelta<0?Step.next():Step.pre();    } else { //FF      e.detail>0?Step.next():Step.pre();    }    document.title = Step.getCurrentVal();    box.scrollTop = Math.min(Step.getDistance(),content.offsetHeight-document.body.offsetHeight);    //计算滚动比例    var percent = box.scrollTop/(content.offsetHeight-document.body.offsetHeight);    //显示滚动条    scroll.style.opacity = 100;    //计算滚动条的位置    scrollBar.style.top = (scroll.offsetHeight-scrollBar.offsetHeight)*percent + "px";  }</script>

感谢各位的阅读!关于“js如何自定义滚动条”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js
AI