码迷,mamicode.com
首页 > Web开发 > 详细

原生+jquery 实现好看滚动条。

时间:2016-09-12 00:25:44      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

  1 //原生
  2 <!doctype html>
  3 <html>
  4 <head>
  5 <meta charset="utf-8">
  6 <title>无标题文档</title>
  7 <style>
  8  *{
  9     margin:0;
 10     padding:0;     
 11 }
 12  #box{
 13     width:600px;
 14     height:600px;
 15     position:relative;
 16     margin:50px auto;
 17     border:5px solid #000;
 18     background:green;
 19     color:#fff; 
 20  }
 21  #right{
 22     width:40px;
 23     height:100%;
 24     background:#ccc;
 25     position:absolute;
 26     right:0;
 27     top:0; 
 28  }
 29  #move{
 30      width:40px;
 31      height:60px;
 32      background:red;
 33      position:absolute;
 34      top:0;
 35      left:0;
 36  }
 37  #nav{
 38     width:560px;
 39     height:100%;
 40     position:absolute;
 41     left:0;
 42     top:0;
 43     overflow:hidden; 
 44  }
 45  #txt{
 46     width:100%;
 47     position:absolute;
 48     top:0;
 49     left:0; 
 50  }
 51 </style>
 52 <script>
 53 function addWheel(obj,fn){
 54     function wheel(ev){
 55         var oEvent= ev  ||  event;
 56         var onOff=true;
 57         onOff=oEvent.wheelDelta ? oEvent.wheelDelta>0 : oEvent.detail<0  ;
 58         fn&&fn(onOff);
 59         oEvent.preventDefault&&oEvent.preventDefault();
 60         return false;
 61         };
 62         if(window.navigator.userAgent.toLowerCase().indexOf(firefox)!=-1){
 63          obj.addEventListener(DOMMouseScroll,wheel,false);
 64         }else{
 65         obj.onmousewheel=wheel;    
 66         }    
 67 };
 68 window.onload=function(){
 69     var oBox=document.getElementById(box);
 70     var oRight=document.getElementById(right);
 71     var oMove=document.getElementById(move);
 72     var oTxt=document.getElementById(txt);
 73     var oNav=document.getElementById(nav);
 74     function getT(t){
 75         if(t<0){
 76             t=0;    
 77         }else if(t>=oRight.offsetHeight-oMove.offsetHeight){
 78             t=oRight.offsetHeight-oMove.offsetHeight;    
 79         }
 80         oMove.style.top=t+px;    
 81         var a=(oTxt.offsetHeight-oNav.offsetHeight)/(oRight.offsetHeight-oMove.offsetHeight);
 82         oTxt.style.top=-t*a+px;    
 83     }
 84     oMove.onmousedown=function(ev){
 85          var oEvent=  ev||  event;
 86         var disY=oEvent.clientY-oMove.offsetTop;
 87         document.onmousemove=function(ev){
 88             var oEvent=ev  ||  event;
 89             var t=oEvent.clientY-disY;
 90             getT(t);
 91         };
 92         document.onmouseup=function(){
 93             document.onmousemove=null;
 94             document.onmouseup=null;
 95             oMove.releaseCapture&&oMove.releaseCapture();    
 96         };
 97         oMove.setCapture&&oMove.setCapture();
 98         return false;    
 99     };
100     addWheel(oBox,function(onOff){
101         var t=oMove.offsetTop;
102         if(onOff){
103             t-=10;
104         }else{
105             t+=10;
106         }
107         getT(t);    
108     });    
109 };
110 </script>
111 </head>
112 
113 <body>
114 <div id="box">
115     <div id="right">
116         <div id="move"></div>
117     </div>
118     <div id="nav">
119         <div id="txt">【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱说。【环球时报综合报道 记者 邬宁宁            【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱说。【环球时报综合报道 记者 邬宁宁            【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱说。【环球时报综合报道 记者 邬宁宁            【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱说。【环球时报综合报道 记者 邬宁宁            【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱说。【环球时报综合报道 记者 邬宁宁            【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱】</div>
120     </div>
121 </div>
122 </body>
123 </html>
124 
125 
126 //jquery
127 
128 <!doctype html>
129 <html>
130 <head>
131 <meta charset="utf-8">
132 <title>无标题文档</title>
133 <style>
134  *{
135     margin:0;
136     padding:0;     
137 }
138  #box{
139     width:600px;
140     height:600px;
141     position:relative;
142     margin:50px auto;
143     border:5px solid #000;
144     background:green;
145     color:#fff; 
146  }
147  #right{
148     width:40px;
149     height:100%;
150     background:#ccc;
151     position:absolute;
152     right:0;
153     top:0; 
154  }
155  #move{
156      width:40px;
157      height:60px;
158      background:red;
159      position:absolute;
160      top:0;
161      left:0;
162  }
163  #nav{
164     width:560px;
165     height:100%;
166     position:absolute;
167     left:0;
168     top:0;
169     overflow:hidden; 
170  }
171  #txt{
172     width:100%;
173     position:absolute;
174     top:0;
175     left:0; 
176  }
177 </style>
178 <script src="jquery-1.7.2.js"></script>
179 <script>
180 function addWheel(obj,fn){
181     function wheel(ev){
182         var oEvent= ev  ||  event;
183         var onOff=true;
184         onOff=oEvent.wheelDelta ? oEvent.wheelDelta>0 : oEvent.detail<0  ;
185         fn&&fn(onOff);
186         oEvent.preventDefault&&oEvent.preventDefault();
187         return false;
188     };
189         if(window.navigator.userAgent.toLowerCase().indexOf(firefox)!=-1){
190          obj.addEventListener(DOMMouseScroll,wheel,false);
191         }else{
192         obj.onmousewheel=wheel;    
193         }    
194 };
195 
196 $(function(){
197     //console.log($(‘#right‘)[0]);
198     var oBox=$(#box);    
199     var oRight=$(#right);    
200     var oMove=$(#move);    
201     var oTxt=$(#txt);    
202     var oNav=$(#nav);    
203     function getT(t){
204         if(t<0){
205             t=0;    
206         }else if(t>=oRight.height()-oMove.height()){
207             t=oRight.height()-oMove.height();    
208         }
209         oMove.css({
210             top:t+px    
211         });    
212         var a=(oTxt.height()-oNav.height())/(oRight.height()-oMove.height());
213         oTxt.css({
214             top:-a*t+px    
215         });
216     
217     }
218     oMove.mousedown(function(ev){
219         var disY=ev.clientY-oMove.position().top;
220         $(document).mousemove(move);
221         $(document).mouseup(up);
222         function move(ev){
223             var t=ev.clientY-disY;
224             getT(t);    
225         }    
226         function up(){
227             $(document).unbind(mousemove,move);
228             $(document).unbind(mouseup,up);
229             oMove.releaseCapture&&oMove.releaseCapture();
230                 
231         }
232         oMove.setCapture&&oMove.setCapture();
233         return false;
234     });
235     addWheel(oBox[0],function(onOff){
236         var t=oMove.position().top;
237         if(onOff){
238             t-=10;
239         }else{
240             t+=10;
241         }
242         getT(t);    
243     });    
244 });
245 </script>
246 </head>
247 
248 <body>
249 <div id="box">
250     <div id="right">
251         <div id="move"></div>
252     </div>
253     <div id="nav">
254         <div id="txt">【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱说。【环球时报综合报道 记者 邬宁宁            【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱说。【环球时报综合报道 记者 邬宁宁            【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱说。【环球时报综合报道 记者 邬宁宁            【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱说。【环球时报综合报道 记者 邬宁宁            【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱说。【环球时报综合报道 记者 邬宁宁            【环球时报综合报道 记者 邬宁宁】7月11日凌晨,留荷国际法学生学者联署南海仲裁案公开信的签名已达1000多人,各种媒体新闻报道的关注总量超过百万。彭芩萱和她的数十名伙伴是这封公开信的起草者和签名活动的发起者,她们还给这个活动确定了一个铿锵有力的口号:“全球联动,呼唤正义”。虽然12日才正式对外发布,这封由英文写就的公开信已经被全球各地的志愿者们陆续翻译成中文、荷文、阿拉伯文、俄文、法文、德文、西班牙文,对于公开信的签名征集也在如火如荼地进行。“(我们)甚至以邮件形式发给世界主要法学院的专家学者以及海牙国际组织的相关工作人员”,彭芩萱】</div>
255     </div>
256 </div>
257 </body>
258 </html>

 

原生+jquery 实现好看滚动条。

标签:

原文地址:http://www.cnblogs.com/lixuekui/p/5863276.html

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