TheShopCritics2/TSC2/wwwroot/js/modules/flexslider.js

118 lines
4.2 KiB
JavaScript

CNVS.FlexSlider = function() {
var __core = SEMICOLON.Core;
var __modules = SEMICOLON.Modules;
return {
init: function(selector) {
if( __core.getSelector(selector, false, false).length < 1 ){
return true;
}
__core.loadJS({ file: 'plugins.flexslider.js', id: 'canvas-flexslider-js', jsFolder: true });
__core.isFuncTrue( function() {
return typeof jQuery !== 'undefined' && jQuery().flexslider;
}).then( function(cond) {
if( !cond ) {
return false;
}
__core.initFunction({ class: 'has-plugin-flexslider', event: 'pluginFlexSliderReady' });
selector = __core.getSelector( selector );
if( selector.length < 1 ){
return true;
}
selector.each(function() {
var element = jQuery(this),
elLazy = element.find('.lazy'),
elAnimation = element.attr('data-animation') || 'slide',
elEasing = element.attr('data-easing') || 'swing',
elDirection = element.attr('data-direction') || 'horizontal',
elReverse = element.attr('data-reverse'),
elSlideshow = element.attr('data-slideshow'),
elPause = element.attr('data-pause') || 5000,
elSpeed = element.attr('data-speed') || 600,
elVideo = element.attr('data-video'),
elPagi = element.attr('data-pagi'),
elArrows = element.attr('data-arrows'),
elArrowLeft = element.attr('data-arrow-left') || 'uil uil-angle-left-b',
elArrowRight = element.attr('data-arrow-right') || 'uil uil-angle-right-b',
elThumbs = element.attr('data-thumbs'),
elHover = element.attr('data-hover'),
elSheight = element.attr('data-smooth-height'),
elTouch = element.attr('data-touch'),
elUseCSS = false;
if( elEasing == 'swing' ) {
elEasing = 'swing';
elUseCSS = true;
}
if( elReverse == 'true' ) { elReverse = true; } else { elReverse = false; }
if( elSlideshow == "false" ) { elSlideshow = false; } else { elSlideshow = true; }
if( !elVideo ) { elVideo = false; }
if( elSheight == 'false' ) { elSheight = false; } else { elSheight = true; }
if( elDirection == 'vertical' ) { elSheight = false; }
if( elPagi == 'false' ) { elPagi = false; } else { elPagi = true; }
if( elThumbs == 'true' ) { elPagi = 'thumbnails'; } else { elPagi = elPagi; }
if( elArrows == 'false' ) { elArrows = false; } else { elArrows = true; }
if( elHover == 'false' ) { elHover = false; } else { elHover = true; }
if( elTouch == 'false' ) { elTouch = false; } else { elTouch = true; }
element.find('.flexslider').flexslider({
selector: ".slider-wrap > .slide",
animation: elAnimation,
easing: elEasing,
direction: elDirection,
reverse: elReverse,
slideshow: elSlideshow,
slideshowSpeed: Number(elPause),
animationSpeed: Number(elSpeed),
pauseOnHover: elHover,
video: elVideo,
controlNav: elPagi,
directionNav: elArrows,
smoothHeight: elSheight,
useCSS: elUseCSS,
touch: elTouch,
start: function( slider ){
__modules.animations();
__modules.lightbox();
jQuery('.flex-prev').html('<i class="'+ elArrowLeft +'"></i>');
jQuery('.flex-next').html('<i class="'+ elArrowRight +'"></i>');
setTimeout( function(){
if( slider.parents( '.grid-container.has-init-isotope' ).length > 0 ) {
slider.parents( '.grid-container.has-init-isotope' ).isotope('layout');
}
}, 1200 );
if( typeof skrollrInstance !== "undefined" ) {
skrollrInstance.refresh();
}
},
after: function( slider ){
if( slider.parents( '.grid-container.has-init-isotope' ).length > 0 && !slider.hasClass('flexslider-grid-relayout') ) {
slider.parents( '.grid-container.has-init-isotope' ).isotope('layout');
slider.addClass('flexslider-grid-relayout');
}
jQuery('.menu-item:visible').find('.flexslider .slide').resize();
}
});
// jQuery(window).on( 'lazyLoadLoaded', function(){
// if( elLazy.length == element.find('.lazy.lazy-loaded').length ) {
// lazyLoadInstance.update();
// setTimeout( function() {
// element.find('.flexslider .slide').resize();
// }, 500 );
// }
// });
});
});
}
};
}();