-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathjquery.breakpoints.min.js
More file actions
4 lines (4 loc) · 2.54 KB
/
jquery.breakpoints.min.js
File metadata and controls
4 lines (4 loc) · 2.54 KB
1
2
3
4
/*
* @license jQuery Breakpoints | MIT | Jerry Low | https://www.github.com/jerrylow/breakpoints
*/
!function(i){function a(e,t){var u=this;function n(){var t=g(),e=u.settings.breakpoints,n=u.currentBp;e.forEach(function(e){n===e.name?e.inside||(i(window).trigger("inside-"+e.name),e.inside=!0):e.inside=!1,t<e.width&&(e.less||(i(window).trigger("lessThan-"+e.name),e.less=!0,e.greater=!1,e.greaterEqual=!1)),t>=e.width&&(e.greaterEqual||(i(window).trigger("greaterEqualTo-"+e.name),e.greaterEqual=!0,e.less=!1),t>e.width&&(e.greater||(i(window).trigger("greaterThan-"+e.name),e.greater=!0,e.less=!1)))})}u.n="breakpoints",u.settings={},u.currentBp=null,u.getBreakpoint=function(){var t,n=g(),e=u.settings.breakpoints;return e.forEach(function(e){n>=e.width&&(t=e.name)}),t=t||e[e.length-1].name},u.getBreakpointWidth=function(t){var n;return u.settings.breakpoints.forEach(function(e){t==e.name&&(n=e.width)}),n},u.compareCheck=function(e,t,n){var r=g(),i=u.settings.breakpoints,a=u.getBreakpointWidth(t),o=!1;switch(e){case"lessThan":o=r<a;break;case"lessEqualTo":o=r<=a;break;case"greaterThan":case"greaterEqualTo":o=a<r;break;case"inside":var s=i.findIndex(function(e){return e.name===t});o=s===i.length-1?a<r:(s=u.getBreakpointWidth(i[s+1].name),a<=r&&r<s)}o&&n()},u.destroy=function(){i(window).unbind(u.n)};var g=function(){var e=i(window);return u.outerWidth?e.outerWidth():window.innerWidth||e.width()},t=i.extend({},i.fn.breakpoints.defaults,t);u.settings={breakpoints:t.breakpoints,buffer:t.buffer,triggerOnInit:t.triggerOnInit,outerWidth:t.outerWidth},e.data(u.n,this),u.currentBp=u.getBreakpoint();var r=null;i.isFunction(i(window).on)&&i(window).on("resize."+u.n,function(e){r&&clearTimeout(r),r=setTimeout(function(e){var t;(t=u.getBreakpoint())!==u.currentBp&&(i(window).trigger({type:"breakpoint-change",from:u.currentBp,to:t}),u.currentBp=t),n()},u.settings.buffer)}),u.settings.triggerOnInit&&setTimeout(function(){i(window).trigger({type:"breakpoint-change",from:u.currentBp,to:u.currentBp,initialInit:!0})},u.settings.buffer),setTimeout(function(){n()},0)}i.fn.breakpoints=function(e,t,n){if(this.data("breakpoints")){var r=this.data("breakpoints");return"getBreakpoint"===e?r.getBreakpoint():"getBreakpointWidth"===e?r.getBreakpointWidth(t):0<=["lessThan","lessEqualTo","greaterThan","greaterEqualTo","inside"].indexOf(e)?r.compareCheck(e,t,n):void("destroy"===e&&r.destroy())}new a(this,e)},i.fn.breakpoints.defaults={breakpoints:[{name:"xs",width:0},{name:"sm",width:768},{name:"md",width:992},{name:"lg",width:1200}],buffer:300,triggerOnInit:!1,outerWidth:!1}}(jQuery);