-
Notifications
You must be signed in to change notification settings - Fork 0
/
jquery.bb-accordion.min.js
1 lines (1 loc) · 2.59 KB
/
jquery.bb-accordion.min.js
1
!function(t,i,e,s){"use strict";function h(i,e,s){this.settings=t.extend({},o,s),this._defaults=o,this._name=n,this.element=i,this.wrapper=t(i),this.originalSelector=e,this.button=this.wrapper.find(this.settings.button),this.outer=this.wrapper.find(this.settings.outer),this.inner=this.outer.find(this.settings.inner),this.cssTransition=this.settings.cssTransition,this.transitionSpeed=this.settings.transitionSpeed,this.changeButtonHtml=this.settings.changeButtonHtml,this.originalButtonHtml=this.button.html(),this.toggledButtonHtml=this.settings.toggledButtonHtml,this.exclusive=this.settings.exclusive,this.isOpen=!1,this._innerHeight=0,this.init()}var n="bbAccordion",o={button:".bb-accordion--button",outer:".bb-accordion--outer",inner:".bb-accordion--inner",cssTransition:!1,transitionSpeed:600,changeButtonHtml:!1,toggledButtonHtml:"Close Details",exclusive:!1};t.extend(h.prototype,{_updateInnerHeight:function(){this._innerHeight=this.inner.outerHeight(!0)},_resizeToOpen:function(){this._updateInnerHeight(),this.outer.css({height:this._innerHeight})},_resizeToClosed:function(){this.outer.css({height:"0px","overflow-y":"hidden"})},toggleMe:function(){this.isOpen=!this.isOpen,this.wrapper.toggleClass("bb-accordion--open"),this.isOpen?(this.changeButtonHtml&&this.button.html(this.toggledButtonHtml),this._resizeToOpen()):(this.changeButtonHtml&&this.button.html(this.originalButtonHtml),this._resizeToClosed())},openMe:function(){this.isOpen=!0,this.wrapper.addClass("bb-accordion--open"),this.changeButtonHtml&&this.button.html(this.toggledButtonHtml),this._resizeToOpen()},closeMe:function(){this.isOpen=!1,this.wrapper.removeClass("bb-accordion--open"),this.changeButtonHtml&&this.button.html(this.originalButtonHtml),this._resizeToClosed()},init:function(){var e=this;if(this.outer.css({"overflow-y":"hidden"}),this.wrapper.hasClass("bb-accordion--open")?(this.isOpen=!0,this._resizeToOpen()):(this.isOpen=!1,this._resizeToClosed()),!this.cssTransition){var s=this.transitionSpeed;this.outer.css({"-webkit-transition":"all "+s+"ms ease-out 0s","-moz-transition":"all "+s+"ms ease-out 0s",transition:"all "+s+"ms ease-out 0s"})}this.button.click(function(){e.exclusive&&!e.isOpen&&t(e.originalSelector).bbAccordion("closeMe"),e.toggleMe()}),t(i).resize(function(){e.isOpen&&e._resizeToOpen()})}}),t.fn[n]=function(i){var e=this.selector;return t(this).data(n)&&"object"!=typeof i&&i!==s?t(this).data(n)[i]?this.each(function(){t(this).data(n)[i]()}):void console.warn("bbAccordion: you're trying to invoke a method that does not exist."):this.each(function(){t.data(this,n)||t.data(this,n,new h(this,e,i))})}}(jQuery,window,document);