欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

原生js封裝自定義滾動條

 更新時間:2017年03月24日 11:54:35   作者:兔子只吃胡蘿卜  
本文主要介紹了原生js封裝自定義滾動條的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧

最近有一個關于制作在線音樂播放器的項目,需要使用一個滾動條,但是自帶滾動條實在是太丑了,所以就自己琢磨了一下自定義的滾動條。

在網上看原理,說實話沒怎么看懂,就趁今天上午上安卓的時候,研究了一下,結果還算是滿意吧。然后就包裝一個對象。

使用方法很簡單,就是自定義一個div,將這個對象導入做參數,new一下就可以。也可以自己定義滾動條的樣式,只要自己修改一下樣式表就可以

效果圖:

代碼如下:

<!doctype html> 
<html> 
<head> 
 <meta charset="utf-8"> 
 <title></title> 
</head>
<style type="text/css">
div{
 padding:0px;
 box-sizing:border-box;
 margin:0px;
 border:0px;
}
#div-5{
 width: 700px;
 height: 500px;
 border:1px solid black;
 position: relative;
 overflow: hidden;
}
.ribbit-OF-div1{
 width: 20px;
 background-color: rgb(239, 238, 238);
 border:1px solid rgba(0,0,0,0.5);
 position: absolute;
 right:0px;
 top: 0px;
 cursor:default;
}
.ribbit-OF-div2{
 position: absolute;
 top:0px;
 right: 0px;
 width: 100%;
 height: 100px;
 background-color:rgba(0,0,0,0.3);
 border-radius: 10px;
}
.ribbit-OF-div3{
 width: 100%;
 height:auto;
 background-color: lime;
}
</style>
<body>
<div id="div-1">
<div id="div-2">

</div> 
</div>
<div id="div-3"><div id="div-4"></div></div>
<div id="div-5">
  123123<br/>
qwe<br/>
12asd23<br/>
asd3123<br/>
qwe123<br/>
235423423<br/>
azxc123<br/>
123123<br/>
qwe<br/>
12asd23<br/>
asd3123<br/>
qwe123<br/>
235423423<br/>
azxc123<br/>
123123<br/>
qwe<br/>
12asd23<br/>
asd3123<br/>
qwe123<br/>
235423423<br/>
azxc123<br/>
123123<br/>
qwe<br/>
12asd23<br/>
asd3123<br/>
qwe123<br/>
235423423<br/>
azxc123<br/>
123123<br/>
qwe<br/>
12asd23<br/>
asd3123<br/>
qwe123<br/>
235423423<br/>
azxc123<br/>
123123<br/>
qwe<br/>
12asd23<br/>
asd3123<br/>
qwe123<br/>
235423423<br/>
azxc123<br/>123123<br/>
qwe<br/>
12asd23<br/>
asd3123<br/>
qwe123<br/>
235423423<br/>
azxc123<br/>
123123<br/>
qwe<br/>
12asd23<br/>
asd3123<br/>
qwe123<br/>
235423423<br/>
azxc123<br/>
123123<br/>
qwe<br/>
12asd23<br/>
asd3123<br/>
qwe123<br/>
235423423<br/>
azxc123<br/>
</div>
</body>
<script type="text/javascript">
var div_5 = document.getElementById('div-5');
function OverFlow(element){
 this.element = element;
 this.ribbit_OF_div1 = document.createElement("div");
 this.ribbit_OF_div2 = document.createElement("div");
 this.ribbit_OF_div3 = document.createElement("div");
 this.createDiv = function(){
  this.ribbit_OF_div1.className = "ribbit-OF-div1";
  this.ribbit_OF_div2.className = "ribbit-OF-div2";
  this.ribbit_OF_div3.className = "ribbit-OF-div3";
  this.ribbit_OF_div3.innerHTML = this.element.innerHTML;
  this.element.innerHTML="";
  this.element.appendChild(this.ribbit_OF_div3);
  this.ribbit_OF_div1.appendChild(this.ribbit_OF_div2);
  document.body.appendChild(this.ribbit_OF_div1);
  this.ribbit_OF_div1.style.height = getComputedStyle(this.element,null).height;
  this.ribbit_OF_div1.style.left = (this.element.offsetLeft+(parseInt(getComputedStyle(this.element,null).width)-parseInt(getComputedStyle(this.ribbit_OF_div1,null).width)))+"px";
  this.ribbit_OF_div1.style.top = this.element.offsetTop+"px";
  this.ribbit_OF_div2.style.top = "0px";
 }
 this.addAudo=function(){
  var YY=null;//前鼠標位置
  var topXX = 0;//前top位置
  var topX = 0;//后top值
  var vherght = parseInt(getComputedStyle(this.ribbit_OF_div3,null).height)-parseInt(getComputedStyle(this.element,null).height);//可移動
  var dst = 0;
  //最大top移動位置
  var top_x = parseInt(getComputedStyle(this.ribbit_OF_div1,null).height)-parseInt(getComputedStyle(this.ribbit_OF_div2,null).height);
  var thio = this;
  window.onmousemove = function(e){
   fun(e.clientY);
  };
  this.ribbit_OF_div2.onmousedown=function(e){
   YY = e.clientY;
   topXX =parseInt(this.style.top);
   return false;
  }
  window.onmouseup=function(){
   YY = null;
   return true;
  }
  function fun(y){
   if(top_x>=topX&&topX>=0&&YY!=null){
    topX = y-YY+topXX;
    if(topX<0)topX=0;
    if(topX>top_x)topX=top_x-1;
    thio.ribbit_OF_div2.style.top = (topX-1)+"px";
    dst = topX*vherght/top_x;
    thio.element.scrollTop = dst;
   }
  }
 }
 this.createDiv();
 this.addAudo();
}
new OverFlow(div_5);
</script>
</html>

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關文章

  • layui關閉層級、簡單監(jiān)聽的實例

    layui關閉層級、簡單監(jiān)聽的實例

    今天小編就為大家分享一篇layui關閉層級、簡單監(jiān)聽的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 微信小程序實現(xiàn)默認第一個選中變色效果

    微信小程序實現(xiàn)默認第一個選中變色效果

    這篇文章主要介紹了微信小程序實現(xiàn)默認第一個選中變色效果,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • JavaScript實現(xiàn)頁面跳轉的5種方法總結

    JavaScript實現(xiàn)頁面跳轉的5種方法總結

    在前臺開發(fā)中會涉及頁面跳轉的問題,下面這篇文章主要給大家總結介紹了關于JavaScript實現(xiàn)頁面跳轉的5種方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 詳解Webpack4多頁應用打包方案

    詳解Webpack4多頁應用打包方案

    這篇文章主要介紹了詳解Webpack4多頁應用打包方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • ionic中列表項增加和刪除的實現(xiàn)方法

    ionic中列表項增加和刪除的實現(xiàn)方法

    在項目中遇到表單似的頁面,需要進行增加一行和減少一行的操作,基于ionic怎么實現(xiàn)呢?下面小編給大家分享ionic中列表項增加和刪除的實現(xiàn)方法,一起看看吧
    2017-01-01
  • ant design中實現(xiàn)table的表格行的拖拽

    ant design中實現(xiàn)table的表格行的拖拽

    這篇文章主要介紹了ant design中實現(xiàn)table的表格行的拖拽,文章圍繞table表格行拖拽實現(xiàn)的相關資料展開詳細的代碼內容,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • HTML5 JS壓縮圖片并獲取圖片BASE64編碼上傳

    HTML5 JS壓縮圖片并獲取圖片BASE64編碼上傳

    這篇文章主要介紹了HTML5 JS壓縮圖片并獲取圖片BASE64編碼上傳方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Javascript網頁搶紅包外掛實現(xiàn)分享

    Javascript網頁搶紅包外掛實現(xiàn)分享

    本篇文章通過一個搶紅包的網頁實例講述了Javascript書寫的原理以及思路,有興趣的朋友參考學習下。
    2018-01-01
  • JS中定位 position 的使用實例代碼

    JS中定位 position 的使用實例代碼

    本文通過實例代碼給大家介紹了JS中定位 position 的使用,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-08-08
  • JavaScript該如何學習 怎樣輕松學習JavaScript

    JavaScript該如何學習 怎樣輕松學習JavaScript

    JavaScript該如何學習?如何輕松學習JavaScript?這篇文章主要介紹了輕松學習JavaScript的方法
    2017-06-06

最新評論