/
jquery.scrollThis.min.js
1 lines (1 loc) · 2.56 KB
/
jquery.scrollThis.min.js
1
!function(e,t){t.scrollThis=function(){var e=this,n=arguments[0]&&typeof arguments[0]=="object"?t(arguments[0]):null,r=arguments[1]?t.extend(t.scrollThis.defaults,arguments[1],false):t.scrollThis.defaults,i=n.wrap("<div class='"+r.cssSelectors.wrapper+"' />").parent(),s=i.prepend("<div class='"+r.cssSelectors.buttons+" "+r.cssSelectors.upBtn+"' />").find("."+r.cssSelectors.upBtn),o=i.append("<div class='"+r.cssSelectors.buttons+" "+r.cssSelectors.downBtn+"' />").find("."+r.cssSelectors.downBtn),u=function(t){t.stopPropagation();t=t.originalEvent;var n=Math.max(-1,Math.min(1,t.wheelDelta||-t.detail));e.scroll(n)};e.scroll=function(e){var t=n[0].offsetTop,r=s[0].offsetHeight,o=r-n[0].offsetHeight+(i[0].offsetHeight-2*s[0].offsetHeight);t+=e*n.children()[0].offsetHeight;t=t>r?r:t;t=t<o?o:t;n.css({top:t})};e.scrollToTop=function(){var e=s[0].offsetHeight;n.css({top:e})};e.scrollToBottom=function(){var e=s[0].offsetHeight-n[0].offsetHeight+(i[0].offsetHeight-2*s[0].offsetHeight);n.css({top:e})};t.extend(n[0],{scrollThisToTop:function(){e.scrollToTop()},scrollThisToBottom:function(){e.scrollToBottom()}});e.timeoutID=null;e.start=function(t){if(e.timeoutID!=null){if(t==r.cssSelectors.upBtn){e.scroll(r.hoverScrollNum)}else{e.scroll(0-r.hoverScrollNum)}clearTimeout(e.timeoutID);e.timeoutID=setTimeout(e.start,r.hoverScrollDelay,t)}else{e.timeoutID=setTimeout(e.start,r.hoverStartDelay,t)}};e.stop=function(){if(e.timeoutID!=null)clearTimeout(e.timeoutID);e.timeoutID=null};i.on({click:function(){if(t(this).hasClass(r.cssSelectors.upBtn))e.scroll(r.scrollNum);else if(t(this).hasClass(r.cssSelectors.downBtn))e.scroll(-r.scrollNum);e.stop()},mouseover:function(){if(t(this).is("."+r.cssSelectors.upBtn+", ."+r.cssSelectors.downBtn))var n=t(this).hasClass(r.cssSelectors.upBtn)?e.start(r.cssSelectors.upBtn):e.start(r.cssSelectors.downBtn)},mouseout:function(){if(t(this).is("."+r.cssSelectors.upBtn+", ."+r.cssSelectors.downBtn))e.stop()}},"div");i.on({mousewheel:u,DOMMouseScroll:u})};t.scrollThis.defaults={scrollNum:1,hoverScrollNum:1,hoverScrollDelay:200,hoverStartDelay:1e3,cssSelectors:{wrapper:"container",buttons:"btn",upBtn:"up",downBtn:"down"}};t.fn.scrollThis=function(e){return this.each(function(n){if((typeof e).match("object|undefined")){new t.scrollThis(this,e)}})};t.fn.scrollThisToTop=function(){this.each(function(){if(typeof this.scrollThisToTop==="function"){this.scrollThisToTop()}return t(this)});return t(this)};t.fn.scrollThisToBottom=function(){this.each(function(){if(typeof this.scrollThisToBottom==="function"){this.scrollThisToBottom()}return t(this)});return t(this)}}(window,jQuery)