码迷,mamicode.com
首页 > 编程语言 > 详细

javascript 实现的scrollbar 兼容ff/chrome/IE

时间:2014-10-14 20:07:39      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   io   os   使用   ar   

在javascript基础类的基础上实现。实现垂直滚动条。

  1 /*node 为需要滚动展示的控件或控件ID 控件会根据其父容器自动设定宽度  */
  2   GLOBAL.Component.TinyVScrollBar = function(node)
  3   {  
  4      this._wrapList = GLOBAL.Dom.get(node);
  5      if(typeof(this._wrapList) == ‘undefined‘)
  6      return;
  7      this._wrapBox = this._wrapList.parentNode;
  8      if(GLOBAL.TOOL.getNodeSize(this._wrapList).h<=GLOBAL.TOOL.getNodeSize(this._wrapBox).h)
  9      return;
 10      this._scrollBox = null;
 11      this._scrollBar = null;
 12      this._scrollBoxID = this._wrapList.getAttribute("id")+"scrollBox";
 13      if(GLOBAL.Dom.get(this._scrollBoxID))
 14      return;
 15      this._scrollBarID = this._wrapList.getAttribute("id")+"scrollBar";
 16      this._scale = 0;
 17      this._height = 0;
 18      this._maxTop = 0;
 19      this._ListMaxTop = 0;
 20      this._top = 0;
 21      /*供事件所用*/
 22      this._disY = 0;
 23      this._EventMap = {};
 24      this._bNegNumber = 0;
 25      this._ddisY = 0;
 26      /*创建div*/
 27      this._scrollBox=document.createElement("div");
 28      this._scrollBox.id = this._scrollBoxID;
 29      this._scrollBox.className="js-scrollbox";
 30      this._scrollBox.style.height = this._wrapBox.style.height;
 31      this._scrollBar=document.createElement("div");
 32      this._scrollBar.id = this._scrollBarID;
 33      this._scrollBar.className ="js-scrollbar";
 34      this._scrollBox.appendChild(this._scrollBar);
 35      this._wrapBox.appendChild(this._scrollBox);
 36      /*设定宽度 及位置 */
 37      /*父容器position必须为absolute 或者为 relative*/
 38      GLOBAL.Dom.setStyle(this._wrapBox,{‘overflow‘:‘hidden‘});
 39      /*设置wraplist的位置和宽度*/
 40      var v_listWidth = this._wrapBox.clientWidth - 15;
 41      GLOBAL.Dom.setStyle(this._wrapList,{‘position‘:‘absolute‘,‘top‘: ‘0px‘,‘left‘: ‘0px‘,‘width‘:v_listWidth+‘px‘});
 42      GLOBAL.Dom.setAttribute(this._wrapBox,{‘tabIndex‘:0});
 43      /*设置scrollbox*/
 44      GLOBAL.Dom.setStyle(this._scrollBox,{‘position‘:‘absolute‘,‘top‘: ‘0px‘,‘left‘: v_listWidth+‘px‘});
 45      /*初始化移动高度*/
 46      this.initScale();
 47      /*绑定事件*/ 
 48      this.bindEvent();     
 49   }
 50   GLOBAL.Component.TinyVScrollBar.prototype.initScale = function(){
 51      this._scale = this._wrapBox.clientHeight / this._wrapList.scrollHeight;
 52      this._height = this._scale * this._scrollBox.scrollHeight;
 53      this._maxTop = this._scrollBox.scrollHeight - this._height;
 54      this._ListMaxTop = this._wrapBox.clientHeight - this._wrapList.scrollHeight;
 55      this._scrollBar.style.height = this._height + ‘px‘;
 56   }
 57   GLOBAL.Component.TinyVScrollBar.prototype.fnScroll=function() {
 58     if (this._top < 0) this._top = 0;
 59     if (this._top > this._maxTop) this._top = this._maxTop;
 60     var scale = this._top / this._maxTop;
 61     var listTop = scale * this._ListMaxTop;
 62     this._scrollBar.style.top = this._top + ‘px‘;
 63     this._wrapList.style.top = listTop + ‘px‘;
 64   }
 65   GLOBAL.Component.TinyVScrollBar.prototype.bindEvent = function(){
 66     /*绑定滑轮事件*/
 67     this._EventMap._wrapListmousewheel = GLOBAL.Event.on(this._wrapBox,‘mousewheel‘,this.mousewheel,this);
 68     this._EventMap._wrapListDOMMouseScroll=GLOBAL.Event.on(this._wrapBox,‘DOMMouseScroll‘,this.mousewheel,this);
 69     /*单击事件*/
 70     this._EventMap._scrollBoxclick = GLOBAL.Event.on(this._scrollBox,‘click‘,this.mouseclick,this);
 71     this._EventMap._scrollBarclick = GLOBAL.Event.on(this._scrollBar,‘click‘,this.mousecancelclick,this);
 72     /*单击拖动事件*/
 73     this._EventMap._scrollBarmousedown = GLOBAL.Event.on(this._scrollBar,‘mousedown‘,this.mousemoveanddown,this);
 74     /*鼠标双击事件*/
 75     this._EventMap._scrollBardblclick = GLOBAL.Event.on(this._scrollBar,‘dblclick‘,this.mousedbclick,this);
 76     /*键盘事件*/
 77     this._EventMap._wrapBoxkeydown = GLOBAL.Event.on(this._wrapBox,‘keydown‘,this.keyDown,this);
 78     /*选择事件*/
 79     this._EventMap._wrapListmousedown = GLOBAL.Event.on(this._wrapBox,‘mousedown‘,this.mousedown,this);
 80   }
 81   /*定义的事件*/
 82   /*鼠标滑轮*/
 83   GLOBAL.Component.TinyVScrollBar.prototype.mousewheel = function(ev) {
 84       ev = ev || event;
 85       var fx = ev.wheelDelta || ev.detail;
 86       var bDown = true;
 87       if (ev.detail) {
 88         bDown = fx > 0 ? true: false;
 89       } else {
 90         bDown = fx > 0 ? false: true;
 91       }
 92       if (bDown) {
 93         this._top += 10;
 94       } else {
 95         this._top -= 10;
 96       }
 97       this.fnScroll();
 98       GLOBAL.Event.stopPropagation(ev);
 99     };
100   /*单击事件*/
101    GLOBAL.Component.TinyVScrollBar.prototype.mouseclick = function(ev) {
102       ev = ev || event;
103       var position = GLOBAL.TOOL.getWindowPosition(this._scrollBox);
104       var disY = ev.clientY - position.y;
105       this._top = disY-GLOBAL.TOOL.parsePx(this._scrollBar.style.height)/2;
106       this.fnScroll();
107       GLOBAL.Event.stopPropagation(ev);
108     };
109     GLOBAL.Component.TinyVScrollBar.prototype.mousecancelclick = function(ev) {
110       ev = ev || event;
111       GLOBAL.Event.stopPropagation(ev);
112     };
113     
114   /*单击拖动事件*/
115   GLOBAL.Component.TinyVScrollBar.prototype.mousemoveanddown = function(ev) {
116       ev = ev || event;
117       //console.debug("mousemoveanddown");
118       //var position = GLOBAL.TOOL.getWindowPosition(this._scrollBox);
119       this._disY = ev.clientY;
120       //console.debug("a"+this._disY);
121       this._EventMap.documentmousemove = GLOBAL.Event.on(document,‘mousemove‘,this.documentmousemove,this);
122       this._EventMap.documentmouseup = GLOBAL.Event.on(document,‘mouseup‘,this.documentmousemovecancel,this);
123       GLOBAL.Event.stopPropagation(ev);
124     };
125     GLOBAL.Component.TinyVScrollBar.prototype.documentmousemove = function(ev) {
126         ev = ev || event;
127         //console.debug("b"+ev.clientY);
128         var topY = ev.clientY -this._disY;
129         this._disY = ev.clientY;
130         this._top +=topY;
131         this.fnScroll();
132         GLOBAL.Event.stopPropagation(ev);
133       };
134     GLOBAL.Component.TinyVScrollBar.prototype.documentmousemovecancel = function(ev) {
135         ev = ev || event;
136         if(this._EventMap.documentmousemove)
137         {
138           GLOBAL.Event.remove(document,‘mousemove‘,this._EventMap.documentmousemove);
139         }
140         if(this._EventMap.documentmouseup)
141         {
142           GLOBAL.Event.remove(document,‘mouseup‘,this._EventMap.documentmouseup);
143         }
144          GLOBAL.Event.stopPropagation(ev);
145       };
146       /*鼠标双击事件*/
147     GLOBAL.Component.TinyVScrollBar.prototype.mousedbclick = function(ev){
148      
149       ev = ev || event;
150       if(this._bNegNumber == 0)
151       {
152         this._top +=10;
153         if (this._top < 0) this._top = 0;
154         if (this._top >= this._maxTop) 
155         {
156            this._top = this._maxTop;
157            this._bNegNumber =1;
158         }
159       }
160       else
161       {
162         this._top -=10;
163         if (this._top <= 0) {
164         this._top = 0;
165         this._bNegNumber =0;
166         }
167         if (this._top >= this._maxTop) 
168         {
169            this._top = this._maxTop;
170         }
171       }
172       this.fnScroll();
173       GLOBAL.Event.stopPropagation(ev);
174     };
175     /*键盘事件*/
176     GLOBAL.Component.TinyVScrollBar.prototype.keyDown = function(e)
177     {
178        e=GLOBAL.Event.getEvent(e);
179       var currKey=e.keyCode||e.which||e.charCode; 
180        switch(currKey)
181        {
182           case 38://向上
183                this._top -=10;
184                if (this._top < 0) this._top = 0;
185                break;
186           case 40://向下
187                this._top +=10;
188                if (this._top > this._maxTop) this._top = this._maxTop;
189                break;
190           default:
191        }
192        this.fnScroll();
193        GLOBAL.Event.stopPropagation(e);
194     }
195     GLOBAL.Component.TinyVScrollBar.prototype.mouseup = function(ev)
196     {
197       if(this._EventMap.wraplistdocumentmousemove)
198       {
199           GLOBAL.Event.remove(document,‘mousemove‘,this._EventMap.wraplistdocumentmousemove);
200       }
201       if(this._EventMap._wrapListmouseup)
202       {
203           GLOBAL.Event.remove(document,‘mouseup‘,this._EventMap._wrapListmouseup);
204       }
205        GLOBAL.Event.stopPropagation(ev);
206     }
207     
208     GLOBAL.Component.TinyVScrollBar.prototype.mousedown = function(ev)
209     {
210       ev = ev || event;
211       this._ddisY = ev.clientY;
212       this._EventMap.wraplistdocumentmousemove = GLOBAL.Event.on(document,‘mousemove‘,this.wraplistdocumentmousemove,this);
213       this._EventMap._wrapListmouseup = GLOBAL.Event.on(document,‘mouseup‘,this.mouseup,this);
214       GLOBAL.Event.stopPropagation(ev);
215     }
216     
217     GLOBAL.Component.TinyVScrollBar.prototype.wraplistdocumentmousemove = function(ev)
218     {
219        ev = ev || event;
220         //console.debug("b"+ev.clientY);
221        var position = GLOBAL.TOOL.getWindowPosition(this._wrapBox);
222        if(ev.clientY > position.y && ev.clientY<(position.y+this._wrapBox.clientHeight))
223        {
224          GLOBAL.Event.stopPropagation(ev);  
225          return;
226        }  
227        var topY = ev.clientY -this._ddisY;
228        if(topY==0)
229        {
230          GLOBAL.Event.stopPropagation(ev);  
231          return;
232        }
233        if(topY<0)
234        {
235          this._ddisY = ev.clientY;
236          this._top -=10;
237        }
238        else
239        {
240           this._ddisY = ev.clientY;
241          this._top +=10;
242        }
243        this.fnScroll();
244        GLOBAL.Event.stopPropagation(ev);
245     }

 所使用的css 

 1 .js-scrollbar:hover{
 2   border: 0.5px #0036ff solid ;
 3   background-color: #494949;
 4   box-shadow: inset 0 0.5px rgba(255,255,255,0.36),0 0 0 1px #6fb5f1;
 5   cursor:pointer;
 6 }
 7 
 8 
 9 .js-scrollbar{
10   position:relative;
11   width:13px;
12   height:20px;
13   margin-left:auto;
14   margin-right:auto;
15   background-color: #d9d9d9;
16   border-radius: 2px;
17 }
18 
19 .js-scrollbox{
20   width:15px;
21   border-radius: 2px;
22   background-color: #f3faff;
23 }

使用为获取要显示的div 的ID, 1 new GLOBAL.Component.TinyVScrollBar("#divID"); 

测试用例:base.js为javascript基础类

  1 <html xmlns="http://www.w3.org/1999/xhtml" debug="true">
  2 <head>
  3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4 <script src="base.js" type="text/javascript"></script>
  5 <title>滚动条测试</title>
  6 <style type="text/css">
  7 .js-scrollbar:hover{
  8   border: 0.5px #0036ff solid ;
  9   background-color: #494949;
 10   box-shadow: inset 0 0.5px rgba(255,255,255,0.36),0 0 0 1px #6fb5f1;
 11   cursor:pointer;
 12 }
 13 
 14 
 15 .js-scrollbar{
 16   position:relative;
 17   width:13px;
 18   height:20px;
 19   margin-left:auto;
 20   margin-right:auto;
 21   background-color: #d9d9d9;
 22   border-radius: 2px;
 23 }
 24 
 25 .js-scrollbox{
 26   width:15px;
 27   border-radius: 2px;
 28   background-color: #f3faff;
 29 }
 30 </style>
 31 <script>
 32   /*node 为需要滚动展示的控件或控件ID 控件会根据其父容器自动设定宽度  */
 33   GLOBAL.Component.TinyVScrollBar = function(node)
 34   {  
 35      this._wrapList = GLOBAL.Dom.get(node);
 36      if(typeof(this._wrapList) == ‘undefined‘)
 37      return;
 38      this._wrapBox = this._wrapList.parentNode;
 39      if(GLOBAL.TOOL.getNodeSize(this._wrapList).h<=GLOBAL.TOOL.getNodeSize(this._wrapBox).h)
 40      return;
 41      this._scrollBox = null;
 42      this._scrollBar = null;
 43      this._scrollBoxID = this._wrapList.getAttribute("id")+"scrollBox";
 44      if(GLOBAL.Dom.get(this._scrollBoxID))
 45      return;
 46      this._scrollBarID = this._wrapList.getAttribute("id")+"scrollBar";
 47      this._scale = 0;
 48      this._height = 0;
 49      this._maxTop = 0;
 50      this._ListMaxTop = 0;
 51      this._top = 0;
 52      /*供事件所用*/
 53      this._disY = 0;
 54      this._EventMap = {};
 55      this._bNegNumber = 0;
 56      this._ddisY = 0;
 57      /*创建div*/
 58      this._scrollBox=document.createElement("div");
 59      this._scrollBox.id = this._scrollBoxID;
 60      this._scrollBox.className="js-scrollbox";
 61      this._scrollBox.style.height = this._wrapBox.style.height;
 62      this._scrollBar=document.createElement("div");
 63      this._scrollBar.id = this._scrollBarID;
 64      this._scrollBar.className ="js-scrollbar";
 65      this._scrollBox.appendChild(this._scrollBar);
 66      this._wrapBox.appendChild(this._scrollBox);
 67      /*设定宽度 及位置 */
 68      /*父容器position必须为absolute 或者为 relative*/
 69      GLOBAL.Dom.setStyle(this._wrapBox,{‘overflow‘:‘hidden‘});
 70      /*设置wraplist的位置和宽度*/
 71      var v_listWidth = this._wrapBox.clientWidth - 15;
 72      GLOBAL.Dom.setStyle(this._wrapList,{‘position‘:‘absolute‘,‘top‘: ‘0px‘,‘left‘: ‘0px‘,‘width‘:v_listWidth+‘px‘});
 73      GLOBAL.Dom.setAttribute(this._wrapBox,{‘tabIndex‘:0});
 74      /*设置scrollbox*/
 75      GLOBAL.Dom.setStyle(this._scrollBox,{‘position‘:‘absolute‘,‘top‘: ‘0px‘,‘left‘: v_listWidth+‘px‘});
 76      /*初始化移动高度*/
 77      this.initScale();
 78      /*绑定事件*/ 
 79      this.bindEvent();     
 80   }
 81   GLOBAL.Component.TinyVScrollBar.prototype.initScale = function(){
 82      this._scale = this._wrapBox.clientHeight / this._wrapList.scrollHeight;
 83      this._height = this._scale * this._scrollBox.scrollHeight;
 84      this._maxTop = this._scrollBox.scrollHeight - this._height;
 85      this._ListMaxTop = this._wrapBox.clientHeight - this._wrapList.scrollHeight;
 86      this._scrollBar.style.height = this._height + ‘px‘;
 87   }
 88   GLOBAL.Component.TinyVScrollBar.prototype.fnScroll=function() {
 89     if (this._top < 0) this._top = 0;
 90     if (this._top > this._maxTop) this._top = this._maxTop;
 91     var scale = this._top / this._maxTop;
 92     var listTop = scale * this._ListMaxTop;
 93     this._scrollBar.style.top = this._top + ‘px‘;
 94     this._wrapList.style.top = listTop + ‘px‘;
 95   }
 96   GLOBAL.Component.TinyVScrollBar.prototype.bindEvent = function(){
 97     /*绑定滑轮事件*/
 98     this._EventMap._wrapListmousewheel = GLOBAL.Event.on(this._wrapBox,‘mousewheel‘,this.mousewheel,this);
 99     this._EventMap._wrapListDOMMouseScroll=GLOBAL.Event.on(this._wrapBox,‘DOMMouseScroll‘,this.mousewheel,this);
100     /*单击事件*/
101     this._EventMap._scrollBoxclick = GLOBAL.Event.on(this._scrollBox,‘click‘,this.mouseclick,this);
102     this._EventMap._scrollBarclick = GLOBAL.Event.on(this._scrollBar,‘click‘,this.mousecancelclick,this);
103     /*单击拖动事件*/
104     this._EventMap._scrollBarmousedown = GLOBAL.Event.on(this._scrollBar,‘mousedown‘,this.mousemoveanddown,this);
105     /*鼠标双击事件*/
106     this._EventMap._scrollBardblclick = GLOBAL.Event.on(this._scrollBar,‘dblclick‘,this.mousedbclick,this);
107     /*键盘事件*/
108     this._EventMap._wrapBoxkeydown = GLOBAL.Event.on(this._wrapBox,‘keydown‘,this.keyDown,this);
109     /*选择事件*/
110     this._EventMap._wrapListmousedown = GLOBAL.Event.on(this._wrapBox,‘mousedown‘,this.mousedown,this);
111   }
112   /*定义的事件*/
113   /*鼠标滑轮*/
114   GLOBAL.Component.TinyVScrollBar.prototype.mousewheel = function(ev) {
115       ev = ev || event;
116       var fx = ev.wheelDelta || ev.detail;
117       var bDown = true;
118       if (ev.detail) {
119         bDown = fx > 0 ? true: false;
120       } else {
121         bDown = fx > 0 ? false: true;
122       }
123       if (bDown) {
124         this._top += 10;
125       } else {
126         this._top -= 10;
127       }
128       this.fnScroll();
129       GLOBAL.Event.stopPropagation(ev);
130     };
131   /*单击事件*/
132    GLOBAL.Component.TinyVScrollBar.prototype.mouseclick = function(ev) {
133       ev = ev || event;
134       var position = GLOBAL.TOOL.getWindowPosition(this._scrollBox);
135       var disY = ev.clientY - position.y;
136       this._top = disY-GLOBAL.TOOL.parsePx(this._scrollBar.style.height)/2;
137       this.fnScroll();
138       GLOBAL.Event.stopPropagation(ev);
139     };
140     GLOBAL.Component.TinyVScrollBar.prototype.mousecancelclick = function(ev) {
141       ev = ev || event;
142       GLOBAL.Event.stopPropagation(ev);
143     };
144     
145   /*单击拖动事件*/
146   GLOBAL.Component.TinyVScrollBar.prototype.mousemoveanddown = function(ev) {
147       ev = ev || event;
148       console.debug("mousemoveanddown");
149       //var position = GLOBAL.TOOL.getWindowPosition(this._scrollBox);
150       this._disY = ev.clientY;
151       //console.debug("a"+this._disY);
152       this._EventMap.documentmousemove = GLOBAL.Event.on(document,‘mousemove‘,this.documentmousemove,this);
153       this._EventMap.documentmouseup = GLOBAL.Event.on(document,‘mouseup‘,this.documentmousemovecancel,this);
154       GLOBAL.Event.stopPropagation(ev);
155     };
156     GLOBAL.Component.TinyVScrollBar.prototype.documentmousemove = function(ev) {
157         ev = ev || event;
158         //console.debug("b"+ev.clientY);
159         var topY = ev.clientY -this._disY;
160         this._disY = ev.clientY;
161         this._top +=topY;
162         this.fnScroll();
163         GLOBAL.Event.stopPropagation(ev);
164       };
165     GLOBAL.Component.TinyVScrollBar.prototype.documentmousemovecancel = function(ev) {
166         ev = ev || event;
167         if(this._EventMap.documentmousemove)
168         {
169           GLOBAL.Event.remove(document,‘mousemove‘,this._EventMap.documentmousemove);
170         }
171         if(this._EventMap.documentmouseup)
172         {
173           GLOBAL.Event.remove(document,‘mouseup‘,this._EventMap.documentmouseup);
174         }
175          GLOBAL.Event.stopPropagation(ev);
176       };
177       /*鼠标双击事件*/
178     GLOBAL.Component.TinyVScrollBar.prototype.mousedbclick = function(ev){
179       console.debug("mousedbclick");
180       ev = ev || event;
181       if(this._bNegNumber == 0)
182       {
183         this._top +=10;
184         if (this._top < 0) this._top = 0;
185         if (this._top >= this._maxTop) 
186         {
187            this._top = this._maxTop;
188            this._bNegNumber =1;
189         }
190       }
191       else
192       {
193         this._top -=10;
194         if (this._top <= 0) {
195         this._top = 0;
196         this._bNegNumber =0;
197         }
198         if (this._top >= this._maxTop) 
199         {
200            this._top = this._maxTop;
201         }
202       }
203       this.fnScroll();
204       GLOBAL.Event.stopPropagation(ev);
205     };
206     /*键盘事件*/
207     GLOBAL.Component.TinyVScrollBar.prototype.keyDown = function(e)
208     {
209        e=GLOBAL.Event.getEvent(e);
210       var currKey=e.keyCode||e.which||e.charCode; 
211        switch(currKey)
212        {
213           case 38://向上
214                this._top -=10;
215                if (this._top < 0) this._top = 0;
216                break;
217           case 40://向下
218                this._top +=10;
219                if (this._top > this._maxTop) this._top = this._maxTop;
220                break;
221           default:
222        }
223        this.fnScroll();
224        GLOBAL.Event.stopPropagation(e);
225     }
226     GLOBAL.Component.TinyVScrollBar.prototype.mouseup = function(ev)
227     {
228       if(this._EventMap.wraplistdocumentmousemove)
229       {
230           GLOBAL.Event.remove(document,‘mousemove‘,this._EventMap.wraplistdocumentmousemove);
231       }
232       if(this._EventMap._wrapListmouseup)
233       {
234           GLOBAL.Event.remove(document,‘mouseup‘,this._EventMap._wrapListmouseup);
235       }
236        GLOBAL.Event.stopPropagation(ev);
237     }
238     
239     GLOBAL.Component.TinyVScrollBar.prototype.mousedown = function(ev)
240     {
241       ev = ev || event;
242       this._ddisY = ev.clientY;
243       this._EventMap.wraplistdocumentmousemove = GLOBAL.Event.on(document,‘mousemove‘,this.wraplistdocumentmousemove,this);
244       this._EventMap._wrapListmouseup = GLOBAL.Event.on(document,‘mouseup‘,this.mouseup,this);
245       GLOBAL.Event.stopPropagation(ev);
246     }
247     
248     GLOBAL.Component.TinyVScrollBar.prototype.wraplistdocumentmousemove = function(ev)
249     {
250        console.debug("开始");
251        console.debug(ev.clientY);
252        ev = ev || event;
253         //console.debug("b"+ev.clientY);
254        var position = GLOBAL.TOOL.getWindowPosition(this._wrapBox);
255        if(ev.clientY > position.y && ev.clientY<(position.y+this._wrapBox.clientHeight))
256        {
257          GLOBAL.Event.stopPropagation(ev);  
258          return;
259        }  
260        var topY = ev.clientY -this._ddisY;
261        if(topY==0)
262        {
263          GLOBAL.Event.stopPropagation(ev);  
264          return;
265        }
266        if(topY<0)
267        {
268          this._ddisY = ev.clientY;
269          this._top -=10;
270        }
271        else
272        {
273           this._ddisY = ev.clientY;
274          this._top +=10;
275        }
276        this.fnScroll();
277        GLOBAL.Event.stopPropagation(ev);
278     }
279     
280 </script>
281 </head>
282 <body>
283    <div style="position:relative;width:400px;height:500px;border:1px #353535 solid;"><div id="test">aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/></div>
284 </body>
285 
286         <script type="text/javascript">
287              new GLOBAL.Component.TinyVScrollBar(‘test‘);
288         </script>
289 </html>

 

javascript 实现的scrollbar 兼容ff/chrome/IE

标签:des   style   blog   http   color   io   os   使用   ar   

原文地址:http://www.cnblogs.com/derekxxd/p/4024961.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!