126 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
(function(a){
 | 
						|
	function b(b,c){
 | 
						|
		function w(a){
 | 
						|
			if(!(g.ratio>=1)){
 | 
						|
				o.now=Math.min(i[c.axis]-j[c.axis],Math.max(0,o.start+((k?a.pageX:a.pageY)-p.start)));
 | 
						|
				n=o.now*h.ratio;
 | 
						|
				g.obj.css(l,-n);
 | 
						|
				j.obj.css(l,o.now)
 | 
						|
			}
 | 
						|
			return false
 | 
						|
		}
 | 
						|
		function v(b){
 | 
						|
			a(document).unbind("mousemove",w);
 | 
						|
			a(document).unbind("mouseup",v);
 | 
						|
			j.obj.unbind("mouseup",v);
 | 
						|
			document.ontouchmove=j.obj[0].ontouchend=document.ontouchend=null;
 | 
						|
			return false
 | 
						|
		}
 | 
						|
		function u(b){
 | 
						|
			if(!(g.ratio>=1)){
 | 
						|
				var b=b||window.event;
 | 
						|
				var d=b.wheelDelta?b.wheelDelta/120:-b.detail/3;
 | 
						|
				n-=d*c.wheel;
 | 
						|
				n=Math.min(g[c.axis]-f[c.axis],Math.max(0,n));
 | 
						|
				j.obj.css(l,n/h.ratio);
 | 
						|
				g.obj.css(l,-n);
 | 
						|
				b=a.event.fix(b);
 | 
						|
				b.preventDefault()
 | 
						|
			}
 | 
						|
		}
 | 
						|
		function t(b){
 | 
						|
			p.start=k?b.pageX:b.pageY;
 | 
						|
			var c=parseInt(j.obj.css(l));
 | 
						|
			o.start=c=="auto"?0:c;
 | 
						|
			a(document).bind("mousemove",w);
 | 
						|
			document.ontouchmove=function(b){
 | 
						|
				a(document).unbind("mousemove");
 | 
						|
				w(b.touches[0])
 | 
						|
			};
 | 
						|
			a(document).bind("mouseup",v);
 | 
						|
			j.obj.bind("mouseup",v);
 | 
						|
			j.obj[0].ontouchend=document.ontouchend=function(b){
 | 
						|
				a(document).unbind("mouseup");
 | 
						|
				j.obj.unbind("mouseup");
 | 
						|
				v(b.touches[0])};
 | 
						|
				return false
 | 
						|
			}
 | 
						|
			function s(){
 | 
						|
				j.obj.bind("mousedown",t);
 | 
						|
				j.obj[0].ontouchstart=function(a){
 | 
						|
					a.preventDefault();
 | 
						|
					j.obj.unbind("mousedown");
 | 
						|
					t(a.touches[0]);
 | 
						|
					return false
 | 
						|
				};
 | 
						|
				i.obj.bind("mouseup",w);
 | 
						|
				if(c.scroll&&this.addEventListener){
 | 
						|
					e[0].addEventListener("DOMMouseScroll",u,false);
 | 
						|
					e[0].addEventListener("mousewheel",u,false)
 | 
						|
				}else if(c.scroll){
 | 
						|
					e[0].onmousewheel=u
 | 
						|
				}
 | 
						|
			}
 | 
						|
			function r(){
 | 
						|
				j.obj.css(l,n/h.ratio);
 | 
						|
				g.obj.css(l,-n);
 | 
						|
				p["start"]=j.obj.offset()[l];
 | 
						|
				var a=m.toLowerCase();
 | 
						|
				h.obj.css(a,i[c.axis]);
 | 
						|
				i.obj.css(a,i[c.axis]);
 | 
						|
				j.obj.css(a,j[c.axis])
 | 
						|
			}
 | 
						|
			function q(){
 | 
						|
				d.update();
 | 
						|
				s();
 | 
						|
				return d
 | 
						|
			}
 | 
						|
			var d=this;
 | 
						|
			var e=b;
 | 
						|
			var f={obj:a(".viewport",b)};
 | 
						|
			var g={obj:a(".overview",b)};
 | 
						|
			var h={obj:a(".scrollbar",b)};
 | 
						|
			var i={obj:a(".track",h.obj)};
 | 
						|
			var j={obj:a(".thumb",h.obj)};
 | 
						|
			var k=c.axis=="x",
 | 
						|
				l=k?"left":"top",
 | 
						|
				m=k?"Width":"Height";
 | 
						|
			var n,
 | 
						|
				o={start:0,now:0},
 | 
						|
				p={};
 | 
						|
			this.update=function(a){
 | 
						|
				f[c.axis]=f.obj[0]["offset"+m];
 | 
						|
				g[c.axis]=g.obj[0]["scroll"+m];
 | 
						|
				g.ratio=f[c.axis]/g[c.axis];
 | 
						|
				h.obj.toggleClass("disable",g.ratio>=1);
 | 
						|
				i[c.axis]=c.size=="auto"?f[c.axis]:c.size;
 | 
						|
				j[c.axis]=Math.min(i[c.axis],Math.max(0,c.sizethumb=="auto"?i[c.axis]*g.ratio:c.sizethumb));
 | 
						|
				h.ratio=c.sizethumb=="auto"?g[c.axis]/i[c.axis]:(g[c.axis]-f[c.axis])/(i[c.axis]-j[c.axis]);
 | 
						|
				n=a=="relative"&&g.ratio<=1?Math.min(g[c.axis]-f[c.axis],Math.max(0,n)):0;
 | 
						|
				n=a=="bottom"&&g.ratio<=1?g[c.axis]-f[c.axis]:isNaN(parseInt(a))?n:parseInt(a);
 | 
						|
				r()
 | 
						|
			};
 | 
						|
			return q()
 | 
						|
		}
 | 
						|
		a.tiny=a.tiny||{};
 | 
						|
		a.tiny.scrollbar={
 | 
						|
			options:{
 | 
						|
				axis:"y",
 | 
						|
				wheel:40,
 | 
						|
				scroll:true,
 | 
						|
				size:"auto",
 | 
						|
				sizethumb:"auto"
 | 
						|
			}
 | 
						|
		};
 | 
						|
		a.fn.tinyscrollbar=function(c){
 | 
						|
			var c=a.extend({},a.tiny.scrollbar.options,c);
 | 
						|
			this.each(function(){
 | 
						|
				a(this).data("tsb",new b(a(this),c))
 | 
						|
			});
 | 
						|
			return this
 | 
						|
		};
 | 
						|
		a.fn.tinyscrollbar_update=function(b){
 | 
						|
			return a(this).data("tsb").update(b)
 | 
						|
		};
 | 
						|
	})
 | 
						|
(jQuery) |