/*=========================================================================================
File Name: ext-component-swiper.js
Description: swiper plugin
----------------------------------------------------------------------------------------
Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
Author: PIXINVENT
Author URL: http://www.themeforest.net/user/pixinvent
==========================================================================================*/
$(function () {
'use strict';
//initialize swiper when document ready
var slide1 = $('.slide-1');
var slide250 = $('.slide-250');
var slide500 = $('.slide-500');
var prepend2Slides = $('.prepend-2-slides');
var appendSlide = $('.append-slide');
// default
var mySwiper = new Swiper('.swiper-default');
// navigation
var mySwiper1 = new Swiper('.swiper-navigations', {
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
});
// pagination
var mySwiper2 = new Swiper('.swiper-paginations', {
pagination: {
el: '.swiper-pagination'
}
});
// progress
var mySwiper3 = new Swiper('.swiper-progress', {
pagination: {
el: '.swiper-pagination',
type: 'progressbar'
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
});
// multiple
var mySwiper4 = new Swiper('.swiper-multiple', {
slidesPerView: 3,
spaceBetween: 30,
pagination: {
el: '.swiper-pagination',
clickable: true
}
});
// multi row
var mySwiper5 = new Swiper('.swiper-multi-row', {
slidesPerView: 3,
slidesPerColumn: 2,
spaceBetween: 30,
slidesPerColumnFill: 'row',
pagination: {
el: '.swiper-pagination',
clickable: true
}
});
// centered slides option-1
var mySwiperOpt1 = new Swiper('.swiper-centered-slides', {
slidesPerView: 'auto',
centeredSlides: true,
spaceBetween: 30,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
});
// centered slides option-2
var swiperLength = $('.swiper-slide').length;
if (swiperLength) {
swiperLength = Math.floor(swiperLength / 2);
}
var mySwiperOpt2 = new Swiper('.swiper-centered-slides-2', {
slidesPerView: 'auto',
initialSlide: swiperLength,
centeredSlides: true,
spaceBetween: 30,
slideToClickedSlide: true
});
activeSlide(swiperLength);
// Active slide change on swipe
mySwiper.on('slideChange', function () {
activeSlide(mySwiper.realIndex);
});
//add class active content of active slide
function activeSlide(index) {
var slideEl = mySwiper.slides[index];
var slideId = $(slideEl).attr('id');
$('.wrapper-content').removeClass('active');
$('[data-faq=' + slideId + ']').addClass('active');
}
// fade effect
var mySwiper7 = new Swiper('.swiper-fade-effect', {
spaceBetween: 30,
effect: 'fade',
pagination: {
el: '.swiper-pagination',
clickable: true
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
});
// cube effect
var mySwiper8 = new Swiper('.swiper-cube-effect', {
effect: 'cube',
grabCursor: true,
cubeEffect: {
shadow: true,
slideShadows: true,
shadowOffset: 20,
shadowScale: 0.94
},
pagination: {
el: '.swiper-pagination'
}
});
// coverflow effect
var mySwiper9 = new Swiper('.swiper-coverflow', {
effect: 'coverflow',
grabCursor: true,
centeredSlides: true,
slidesPerView: 'auto',
coverflowEffect: {
rotate: 50,
stretch: 0,
depth: 100,
modifier: 1,
slideShadows: true
},
pagination: {
el: '.swiper-pagination'
}
});
// autoplay
var mySwiper10 = new Swiper('.swiper-autoplay', {
spaceBetween: 30,
centeredSlides: true,
autoplay: {
delay: 2500,
disableOnInteraction: false
},
pagination: {
el: '.swiper-pagination',
clickable: true
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
});
// gallery
var galleryThumbs = new Swiper('.gallery-thumbs', {
spaceBetween: 10,
slidesPerView: 4,
freeMode: true,
watchSlidesVisibility: true,
watchSlidesProgress: true
});
var galleryTop = new Swiper('.gallery-top', {
spaceBetween: 10,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
thumbs: {
swiper: galleryThumbs
}
});
// parallax
var mySwiper12 = new Swiper('.swiper-parallax', {
speed: 600,
parallax: true,
pagination: {
el: '.swiper-pagination',
clickable: true
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
});
// lazy loading
var mySwiper13 = new Swiper('.swiper-lazy-loading', {
// Enable lazy loading
lazy: true,
pagination: {
el: '.swiper-pagination',
clickable: true
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
});
// Responsive Breakpoints
var mySwiper14 = new Swiper('.swiper-responsive-breakpoints', {
slidesPerView: 5,
spaceBetween: 50,
// init: false,
pagination: {
el: '.swiper-pagination',
clickable: true
},
breakpoints: {
1024: {
slidesPerView: 4,
spaceBetween: 40
},
768: {
slidesPerView: 3,
spaceBetween: 30
},
640: {
slidesPerView: 2,
spaceBetween: 20
},
320: {
slidesPerView: 1,
spaceBetween: 10
}
}
});
// virtual slides
var appendNumber = 600;
var prependNumber = 1;
var mySwiper15 = new Swiper('.swiper-virtual', {
slidesPerView: 3,
centeredSlides: true,
spaceBetween: 30,
pagination: {
el: '.swiper-pagination',
type: 'fraction'
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
virtual: {
slides: (function () {
var slides = [];
for (var i = 0; i < 600; i += 1) {
slides.push('Slide ' + (i + 1));
}
return slides;
})()
}
});
// Go to first slide
if (slide1) {
slide1.on('click', function (e) {
e.preventDefault();
mySwiper15.slideTo(0, 0);
});
}
// Go to slide 250
if (slide250) {
slide250.on('click', function (e) {
e.preventDefault();
mySwiper15.slideTo(249, 0);
});
}
// Go to slide 500
if (slide500) {
slide500.on('click', function (e) {
e.preventDefault();
mySwiper15.slideTo(499, 0);
});
}
// Prepend 2 slides
if (prepend2Slides) {
prepend2Slides.on('click', function (e) {
e.preventDefault();
mySwiper15.virtual.prependSlide(['Slide ' + --prependNumber, 'Slide ' + --prependNumber]);
});
}
// Append a slide
if (appendSlide) {
appendSlide.on('click', function (e) {
e.preventDefault();
mySwiper15.virtual.appendSlide('Slide ' + ++appendNumber);
});
}
});