/*
| ----------------------------------------------------------------------------------
| TABLE OF CONTENT
| ----------------------------------------------------------------------------------
-SETTING
-Preloader
-Scroll Animation
-Parallax(Stellar)
-Chars Start
-Loader blocks
-Accordion
-Tooltip
-Zoom Images
-Isotope filter
-Select customization
-Main slider
-Bxslider
-OWL Sliders
*/
$(document).ready(function() {
"use strict";
/////////////////////////////////////////////////////////////////
// SETTING
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
// Preloader
/////////////////////////////////////////////////////////////////
var $preloader = $('#page-preloader'),
$spinner = $preloader.find('.spinner-loader');
$spinner.fadeOut();
$preloader.delay(50).fadeOut('slow');
/////////////////////////////////////
// Scroll Animation
/////////////////////////////////////
if ($('.scrollreveal').length > 0) {
window.sr = ScrollReveal({
reset:true,
duration: 1000,
delay: 200
});
sr.reveal('.scrollreveal');
}
//////////////////////////////
// Parallax(Stellar)
//////////////////////////////
if ($('.stellar').length > 0) {
$.stellar({
responsive: true
});
}
/////////////////////////////////////
// Chars Start
/////////////////////////////////////
if ($('body').length) {
$(window).on('scroll', function() {
var winH = $(window).scrollTop();
$('.b-progress-list').waypoint(function() {
$('.js-chart').each(function() {
CharsStart();
});
}, {
offset: '80%'
});
});
}
function CharsStart() {
$('.js-chart').easyPieChart({
barColor: false,
trackColor: false,
scaleColor: false,
scaleLength: false,
lineCap: false,
lineWidth: false,
size: false,
animate: 5000,
onStep: function(from, to, percent) {
$(this.el).find('.js-percent').text(Math.round(percent));
}
});
}
/////////////////////////////////////
// Loader blocks
/////////////////////////////////////
$( ".js-scroll-next" ).on( "click", function() {
var hiddenContent = $( ".js-scroll-next + .js-scroll-content") ;
$(".js-scroll-next").hide() ;
hiddenContent.show() ;
hiddenContent.addClass("animated");
hiddenContent.addClass("animation-done");
hiddenContent.addClass("bounceInUp");
});
/////////////////////////////////////////////////////////////////
// Accordion
/////////////////////////////////////////////////////////////////
$(".btn-collapse").on('click', function () {
$(this).parents('.panel-group').children('.panel').removeClass('panel-default');
$(this).parents('.panel').addClass('panel-default');
if ($(this).is(".collapsed")) {
$('.panel-title').removeClass('panel-passive');
}
else {$(this).next().toggleClass('panel-passive');
};
});
/////////////////////////////////////
// Tooltip
/////////////////////////////////////
$('.link-tooltip-1').tooltip({
template: '
',
});
$('.link-tooltip-2').tooltip({
template: '',
});
/////////////////////////////////////
// Zoom Images
/////////////////////////////////////
if ($('.js-zoom-gallery').length > 0) {
$('.js-zoom-gallery').each(function() { // the containers for all your galleries
$(this).magnificPopup({
delegate: '.js-zoom-gallery__item', // the selector for gallery item
type: 'image',
gallery: {
enabled:true
},
mainClass: 'mfp-with-zoom', // this class is for CSS animation below
zoom: {
enabled: true, // By default it's false, so don't forget to enable it
duration: 300, // duration of the effect, in milliseconds
easing: 'ease-in-out', // CSS transition easing function
// The "opener" function should return the element from which popup will be zoomed in
// and to which popup will be scaled down
// By defailt it looks for an image tag:
opener: function(openerElement) {
// openerElement is the element on which popup was initialized, in this case its tag
// you don't need to add "opener" option if this code matches your needs, it's defailt one.
return openerElement.is('img') ? openerElement : openerElement.find('img');
}
}
});
});
}
if ($('.js-zoom-images').length > 0) {
$('.js-zoom-images').magnificPopup({
type: 'image',
mainClass: 'mfp-with-zoom', // this class is for CSS animation below
zoom: {
enabled: true, // By default it's false, so don't forget to enable it
duration: 300, // duration of the effect, in milliseconds
easing: 'ease-in-out', // CSS transition easing function
// The "opener" function should return the element from which popup will be zoomed in
// and to which popup will be scaled down
// By defailt it looks for an image tag:
opener: function(openerElement) {
// openerElement is the element on which popup was initialized, in this case its tag
// you don't need to add "opener" option if this code matches your needs, it's defailt one.
return openerElement.is('img') ? openerElement : openerElement.find('img');
}
}
});
}
////////////////////////////////////////////
// ISOTOPE FILTER
///////////////////////////////////////////
if ($('.b-isotope').length > 0) {
var $container = $('.b-isotope-grid');
// init Isotope
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
percentPosition: true,
masonry: {
columnWidth: '.grid-sizer'
}
});
// layout Isotope after each image loads
$grid.imagesLoaded().progress( function() {
$grid.isotope('layout');
});
// filter items when filter link is clicked
$('.b-isotope-filter a').on( 'click', function() {
var selector = $(this).attr('data-filter');
$container.isotope({
filter: selector
});
return false;
});
$('.b-isotope-filter a').on( 'click', function() {
$('.b-isotope-filter').find('.current').removeClass('current');
$( this ).addClass('current');
});
}
/////////////////////////////////////
// Select customization
/////////////////////////////////////
if ($('.selectpicker').length > 0) {
$('.selectpicker').selectpicker({
style: 'ui-select'
});
}
////////////////////////////////////////////
// Main slider
///////////////////////////////////////////
if ($('#main-slider').length > 0) {
var sliderWidth = $("#main-slider").data("slider-width");
var sliderHeigth = $("#main-slider").data("slider-height");
var sliderArrows = $("#main-slider").data("slider-arrows");
var sliderButtons = $("#main-slider").data("slider-buttons");
$( '#main-slider' ).sliderPro({
width: sliderWidth,
height: sliderHeigth,
arrows: sliderArrows,
buttons: sliderButtons,
fade: true,
fullScreen: true,
touchSwipe: false,
autoplay: true
});
}
/////////////////////////////////////////////////////////////////
// Bxslider
/////////////////////////////////////////////////////////////////
if ($('.bxslider').length > 0) {
$('.bxslider').bxSlider({
mode: 'vertical',
minSlides: 3,
controls: false,
autoHover: true,
auto: false
});
}
/////////////////////////////////////////////////////////////////
// OWL Sliders
/////////////////////////////////////////////////////////////////
var Core = {
initialized: false,
initialize: function() {
if (this.initialized) return;
this.initialized = true;
this.build();
},
build: function() {
// Owl Carousel
this.initOwlCarousel();
},
initOwlCarousel: function(options) {
$(".enable-owl-carousel").each(function(i) {
var $owl = $(this);
var itemsData = $owl.data('items');
var navigationData = $owl.data('navigation');
var paginationData = $owl.data('pagination');
var singleItemData = $owl.data('single-item');
var autoPlayData = $owl.data('auto-play');
var transitionStyleData = $owl.data('transition-style');
var mainSliderData = $owl.data('main-text-animation');
var afterInitDelay = $owl.data('after-init-delay');
var stopOnHoverData = $owl.data('stop-on-hover');
var min480 = $owl.data('min480');
var min768 = $owl.data('min768');
var min992 = $owl.data('min992');
var min1200 = $owl.data('min1200');
$owl.owlCarousel({
navigation : navigationData,
pagination: paginationData,
singleItem : singleItemData,
autoPlay : autoPlayData,
transitionStyle : transitionStyleData,
stopOnHover: stopOnHoverData,
navigationText : ["",""],
items: itemsData,
itemsCustom:[
[0, 1],
[465, min480],
[750, min768],
[975, min992],
[1185, min1200]
],
afterInit: function(elem){
if(mainSliderData){
setTimeout(function(){
$('.main-slider_zoomIn').css('visibility','visible').removeClass('zoomIn').addClass('zoomIn');
$('.main-slider_fadeInLeft').css('visibility','visible').removeClass('fadeInLeft').addClass('fadeInLeft');
$('.main-slider_fadeInLeftBig').css('visibility','visible').removeClass('fadeInLeftBig').addClass('fadeInLeftBig');
$('.main-slider_fadeInRightBig').css('visibility','visible').removeClass('fadeInRightBig').addClass('fadeInRightBig');
}, afterInitDelay);
}
},
beforeMove: function(elem){
if(mainSliderData){
$('.main-slider_zoomIn').css('visibility','hidden').removeClass('zoomIn');
$('.main-slider_slideInUp').css('visibility','hidden').removeClass('slideInUp');
$('.main-slider_fadeInLeft').css('visibility','hidden').removeClass('fadeInLeft');
$('.main-slider_fadeInRight').css('visibility','hidden').removeClass('fadeInRight');
$('.main-slider_fadeInLeftBig').css('visibility','hidden').removeClass('fadeInLeftBig');
$('.main-slider_fadeInRightBig').css('visibility','hidden').removeClass('fadeInRightBig');
}
},
afterMove: sliderContentAnimate,
afterUpdate: sliderContentAnimate,
});
});
function sliderContentAnimate(elem){
var $elem = elem;
var afterMoveDelay = $elem.data('after-move-delay');
var mainSliderData = $elem.data('main-text-animation');
if(mainSliderData){
setTimeout(function(){
$('.main-slider_zoomIn').css('visibility','visible').addClass('zoomIn');
$('.main-slider_slideInUp').css('visibility','visible').addClass('slideInUp');
$('.main-slider_fadeInLeft').css('visibility','visible').addClass('fadeInLeft');
$('.main-slider_fadeInRight').css('visibility','visible').addClass('fadeInRight');
$('.main-slider_fadeInLeftBig').css('visibility','visible').addClass('fadeInLeftBig');
$('.main-slider_fadeInRightBig').css('visibility','visible').addClass('fadeInRightBig');
}, afterMoveDelay);
}
}
},
};
Core.initialize();
});