forked from kamlekar/slim-scroll
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathslimscroll.min.js
More file actions
2 lines (2 loc) · 4.2 KB
/
slimscroll.min.js
File metadata and controls
2 lines (2 loc) · 4.2 KB
1
2
/*** slimscroll.min.js ***/
var slimScroll=function(n,Y){var R={},f=this,G="wrapper",H="scrollBar",h="scrollBarContainer",W="",L="",N="data-slimscroll",Q="offsetTop",v="scrollTop",E="parentElement",M="previousElementSibling",X="innerHTML",I="currentTarget",A="scroll-k",g="%",T=".",x="parentNode",u="previousSibling",F="srcElement",O=function(a){if(!f.initInProcess){if(!f.initDone){f.init()}if(!B(R[G])){o();return}}R[G].setAttribute("style","overflow: hidden !important");var d=R.E;R.h=R[h].offsetHeight;R.sH=R[G].scrollHeight;R.sP=(R.h/R.sH)*100;R.sbh=R.sP*R.h/100;if(!d.sH){R.sP1=R.sbh<d.mH?(d.mH/R.h*100):R.sP}else{R.sP1=d.sH/R.h*100}R.rP1=100-R.sP1;R.x=(R.sH-R.h)*((R.sP1-R.sP)/(100-R.sP));R.sH1=Math.abs((R.x/(R.rP1))+(R.sH/100));R[H].style.height=R.sP1+g;R.reposition=e(R[H],R.h)},K=function(i,d,a){i.setAttribute(d,a)},J=function(d,a){if(!d){return}return d.getAttribute(a)},r=function(a,d){if(d.length){a.className=d}},V=function(m,a,i){var l=document.createElement("div");r(l,m);l[X]=a;i.appendChild(l);return l},t=function(s){var s=s||event,d=s.target||event[F],m=d[E]||d[x];var i=R.E;if(!R||m===R[h]){return}var a=s.pageY||event.clientY,l=((a-b(R[G][E]||R[G][x]))/R.h*100)-R.sP1/2;if(l>R.rP1){l=R.rP1}else{if(l<0){l=0}}R[H].style.top=l+g;R[G][v]=l*R.sH1;r(R[h],i.S+i.a)},q=function(i){var d=window.getSelection?window.getSelection():document.selection;if(d){if(d.removeAllRanges){d.removeAllRanges()}else{if(d.empty){d.empty()}}}var i=i||event,a=i[I]||i[F];k("mousemove",document,D);k("mouseup",document,j);R[Q]=b(R[G]);R.firstY=i.pageY||event.clientY;if(!R.reposition){R.reposition=e(R[H],R.h)}return !1},e=function(d,l){var a=parseInt(d.style.top.replace(g,""),10)*l/100;return a?a:0},D=function(m){var m=m||event,i=R.E,a=m.pageY||m.clientY,l=(R.reposition+a-R.firstY)/R.h*100;if(R.rP1<l){l=R.rP1}if(!R.previousTop){R.previousTop=l+1}var d=l>=0&&R.firstY>R[Q];if((R.previousTop>l&&d)||(d&&(R[G][v]+R.h!==R.sH))){R[H].style.top=l+g;R.previousTop=l;R[G][v]=l*R.sH1}r(R[h],i.S)},j=function(d){var d=d||event,a=R.E;c("mousemove",document);c("mouseup",document);R.reposition=0;r(R[h],a.S+a.a)},p=function(d){var d=d||event;if(!R){return}var a=R.E;r(R[h],a.S);R[H].style.top=R[G][v]/R.sH1+g;r(R[h],a.S+a.a)},k=function(i,a,d){a["on"+i]=d},c=function(d,a){a["on"+d]=null},y=function(d,l,m,a){if(d.insertRule){d.insertRule(l+"{"+m+"}",a)}else{if(d.addRule){d.addRule(l,m,a)}}},b=function(d){var a=document.documentElement[v];return d.getBoundingClientRect().top+(a?a:document.body[v])},z=function(){if(!window.slimScrollStylesApplied){if(f.isSlimScrollInserted){f.initInProcess=!1;return}var l="["+N+"]",d=" !important",m="position:absolute"+d,ab=m+";overflow:auto"+d+";left:0px;top:0px"+d+";right:0px;bottom:0px"+d+";padding-right:8px"+d+";",C=m+";top:0px"+d+";bottom:0px"+d+";right:0px;left:auto;width:5px;cursor:pointer"+d+";padding-right:0px"+d+";",ac=m+";background-color:#999;top:0px;left:0px;right:0px;",i=document.createElement("style"),a="[data-scrollbar]";try{i.appendChild(document.createTextNode(""))}catch(Z){}var aa=document.head||document.getElementsByTagName("head")[0];aa.insertBefore(i,(aa.hasChildNodes())?aa.childNodes[0]:null);var U=i.sheet;if(U){y(U,l+">div",ab,0);y(U,l+">div+div",C,0);y(U,a,ac,0)}else{i.styleSheet.cssText=l+">div{"+ab+"}"+l+">div+div{"+C+"}"+l+">div+div>div{"+ac+"}"}f.isSlimScrollInserted=!0;window.slimScrollStylesApplied=!0}},o=function(){n.removeAttribute(N);if(f.isSlimScrollInserted){n.innerHTML=n.firstChild.innerHTML}f.isSlimScrollInserted=!1;f.initDone=!1},B=function(a){if(!a){a=n}return a.offsetHeight<a.scrollHeight},P=function(){o();if(B()){f.initDone=!0;f.initInProcess=!0;K(n,N,"1");z();var a=n[X],i=R.E={};Y=Y||{};i.w=Y.wrapperClass||"";i.s=Y.scrollBarClass||"";i.S=Y.scrollBarContainerClass||"";i.a=Y.scrollBarContainerSpecialClass?" "+Y.scrollBarContainerSpecialClass:"";i.mH=Y.scrollBarMinHeight||25;i.sH=Y.scrollBarFixedHeight;n[X]="";R[G]=V(i.w,a,n);R[h]=V(i.S+i.a,"",n);R[H]=V(i.s,"",R[h]);K(R[H],"data-scrollbar","1");O();R[G].style.overflow="";var d=R[G].offsetWidth-R[G].clientWidth;R[G].style.right=-d+"px";f.isSlimScrollInserted=!0;if(Y.keepFocus){K(R[G],"tabindex","-1");R[G].focus()}k("mousedown",R[H],q);k("click",R[h],t);k("scroll",R[G],p);f.initInProcess=!1}else{o();return}};f.resetValues=O;f.init=P;P();return f};