Current File : /home/gulsvnnd/heaventouchspa.com/wp-content/plugins/vamtam-elements-b/assets/fl-photo.js |
( function( $ ) {
FLBuilderPhoto = function( settings ) {
this.settings = settings;
this.nodeClass = '.fl-node-' + settings.id;
this.image = $( this.nodeClass + ' .fl-photo-img' );
this.caption = $( this.nodeClass + ' .fl-photo-caption' );
this.usesLightbox = this.image.data( 'link-type' ) === 'lightbox';
this._init();
};
FLBuilderPhoto.prototype = {
settings : {},
nodeClass : '',
image : null,
_init: function() {
this.image
.on( 'mouseenter', function( e ) {
$( this ).data( 'title', $( this ).attr( 'title' ) ).removeAttr( 'title' );
} )
.on( 'mouseleave', function( e ){
$( this ).attr( 'title', $( this ).data( 'title' ) ).data( 'title', null );
} );
if ( this.usesLightbox ) {
this._doLightbox();
}
},
_doLightbox: function () {
const _self = this;
if (typeof $.fn.magnificPopup !== 'undefined') {
$(`.fl-node-${ this.settings.id } a`).magnificPopup({
type: 'image',
closeOnContentClick: true,
closeBtnInside: false,
tLoading: '',
preloader: true,
image: {
titleSrc: function(item) {
if ( _self.caption ) {
return _self.caption.text();
}
}
},
callbacks: {
open: function() {
$('.mfp-preloader').html('<i class="fas fa-spinner fa-spin fa-3x fa-fw"></i>');
}
}
});
}
},
}
function initFlPhotos() {
const photoModules = document.querySelectorAll( '.fl-module-photo' );
photoModules.forEach( photo => {
const id = photo.dataset.node;
new FLBuilderPhoto( {
id: id,
} )
});
}
document.addEventListener( 'DOMContentLoaded', function() {
if ( window.FLBuilder ) {
FLBuilder.addHook( 'didCompleteAJAX', initFlPhotos );
FLBuilder.addHook( 'didRenderLayoutComplete', initFlPhotos );
}
initFlPhotos();
} );
})( jQuery );