| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- (function($) {
- FLBuilderAccordion = function( settings )
- {
- this.settings = settings;
- this.nodeClass = '.fl-node-' + settings.id;
- this._init();
- };
- FLBuilderAccordion.prototype = {
- settings : {},
- nodeClass : '',
- _init: function()
- {
- $( this.nodeClass + ' .fl-accordion-button' ).on( 'click', $.proxy( this._buttonClick, this ) );
- FLBuilderLayout.preloadAudio( this.nodeClass + ' .fl-accordion-content' );
- this._openDefaultItem();
- },
- _buttonClick: function( e )
- {
- var button = $( e.target ).closest( '.fl-accordion-button' ),
- accordion = button.closest( '.fl-accordion' ),
- item = button.closest( '.fl-accordion-item' ),
- allContent = accordion.find( '.fl-accordion-content' ),
- allIcons = accordion.find( '.fl-accordion-button i.fl-accordion-button-icon' ),
- content = button.siblings( '.fl-accordion-content' ),
- icon = button.find( 'i.fl-accordion-button-icon' );
- if (accordion.hasClass( 'fl-accordion-collapse' )) {
- accordion.find( '.fl-accordion-item-active' ).removeClass( 'fl-accordion-item-active' );
- allContent.slideUp( 'normal' );
- allIcons.removeClass( 'fa-minus' );
- allIcons.addClass( 'fa-plus' );
- }
- if (content.is( ':hidden' )) {
- item.addClass( 'fl-accordion-item-active' );
- content.slideDown( 'normal', this._slideDownComplete );
- icon.addClass( 'fa-minus' );
- icon.removeClass( 'fa-plus' );
- } else {
- item.removeClass( 'fl-accordion-item-active' );
- content.slideUp( 'normal', this._slideUpComplete );
- icon.addClass( 'fa-plus' );
- icon.removeClass( 'fa-minus' );
- }
- },
- _slideUpComplete: function()
- {
- var content = $( this ),
- accordion = content.closest( '.fl-accordion' );
- accordion.trigger( 'fl-builder.fl-accordion-toggle-complete' );
- },
- _slideDownComplete: function()
- {
- var content = $( this ),
- accordion = content.closest( '.fl-accordion' ),
- item = content.parent(),
- win = $( window );
- FLBuilderLayout.refreshGalleries( content );
- // Grid layout support (uses Masonry)
- FLBuilderLayout.refreshGridLayout( content );
- // Post Carousel support (uses BxSlider)
- FLBuilderLayout.reloadSlider( content );
- // WP audio shortcode support
- FLBuilderLayout.resizeAudio( content );
- if ( item.offset().top < win.scrollTop() + 100 ) {
- $( 'html, body' ).animate({
- scrollTop: item.offset().top - 100
- }, 500, 'swing');
- }
- accordion.trigger( 'fl-builder.fl-accordion-toggle-complete' );
- },
- _openDefaultItem: function()
- {
- if (typeof this.settings.defaultItem !== 'undefined') {
- var item = $.isNumeric( this.settings.defaultItem ) ? (this.settings.defaultItem - 1) : null;
- if (item !== null) {
- $( this.nodeClass + ' .fl-accordion-button' ).eq( item ).trigger( 'click' );
- }
- }
- }
- };
- })(jQuery);
|