You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
4.4 KiB
116 lines
4.4 KiB
jQuery(document).ready(function ($) {
|
|
var sliderContainers = $('.cd-slider-wrapper');
|
|
|
|
if (sliderContainers.length > 0) initBlockSlider(sliderContainers);
|
|
|
|
var slides;
|
|
var sliderPagination;
|
|
var counter = 1;
|
|
|
|
function initBlockSlider(sliderContainers) {
|
|
sliderContainers.each(function () {
|
|
var sliderContainer = $(this);
|
|
slides = sliderContainer.children('.cd-slider').children('li'),
|
|
sliderPagination = createSliderPagination(sliderContainer);
|
|
|
|
sliderPagination.on('click', function (event) {
|
|
event.preventDefault();
|
|
var selected = $(this),
|
|
index = selected.index();
|
|
counter = index + 1;
|
|
resetAutoSlideNext();
|
|
updateSlider(index, sliderPagination, slides);
|
|
});
|
|
|
|
sliderContainer.on('swipeleft', function () {
|
|
var bool = enableSwipe(sliderContainer),
|
|
visibleSlide = sliderContainer.find('.is-visible').last(),
|
|
visibleSlideIndex = visibleSlide.index();
|
|
counter = visibleSlideIndex + 2;
|
|
resetAutoSlideNext();
|
|
if (bool) {
|
|
if (!visibleSlide.is(':last-child')) { updateSlider(visibleSlideIndex + 1, sliderPagination, slides); }
|
|
else { updateSlider(0, sliderPagination, slides); }
|
|
}
|
|
});
|
|
|
|
sliderContainer.on('swiperight', function () {
|
|
var bool = enableSwipe(sliderContainer),
|
|
visibleSlide = sliderContainer.find('.is-visible').last(),
|
|
visibleSlideIndex = visibleSlide.index();
|
|
counter = visibleSlideIndex;
|
|
resetAutoSlideNext();
|
|
if (bool) {
|
|
if (!visibleSlide.is(':first-child')) { updateSlider(visibleSlideIndex - 1, sliderPagination, slides); }
|
|
else { updateSlider(3, sliderPagination, slides); }
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
var interval = setInterval(function () { autoSlideNext(); }, 7000);
|
|
function resetAutoSlideNext() {
|
|
clearInterval(interval);
|
|
interval = setInterval(function () { autoSlideNext(); }, 7000);
|
|
}
|
|
function stopAutoSlideNext() {
|
|
clearInterval(interval);
|
|
}
|
|
|
|
function autoSlideNext() {
|
|
if (counter >= 4) { counter = 0; }
|
|
updateSlider(counter, sliderPagination, slides);
|
|
counter += 1;
|
|
}
|
|
|
|
function createSliderPagination(container) {
|
|
var wrapper = $('<ol class="cd-slider-navigation"></ol>');
|
|
container.children('.cd-slider').find('li').each(function (index) {
|
|
var dotWrapper = (index == 0) ? $('<li class="selected"></li>') : $('<li></li>'),
|
|
dot = $('<a href="#0"></a>').appendTo(dotWrapper);
|
|
dotWrapper.appendTo(wrapper);
|
|
var dotText = (index + 1 < 10) ? '0' + (index + 1) : index + 1;
|
|
dot.text(dotText);
|
|
});
|
|
wrapper.appendTo(container);
|
|
return wrapper.children('li');
|
|
}
|
|
|
|
function updateSlider(n, navigation, slides) {
|
|
navigation.removeClass('selected').eq(n).addClass('selected');
|
|
slides.eq(n).addClass('is-visible').removeClass('covered').prevAll('li').addClass('is-visible covered').end().nextAll('li').removeClass('is-visible covered');
|
|
|
|
//fixes a bug on Firefox with ul.cd-slider-navigation z-index
|
|
navigation.parent('ul').addClass('slider-animating').on('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function () {
|
|
$(this).removeClass('slider-animating');
|
|
});
|
|
}
|
|
|
|
function enableSwipe(container) {
|
|
return (container.parents('.touch').length > 0);
|
|
}
|
|
|
|
$('.popup-link').click(function () {
|
|
var items = [];
|
|
$($(this).attr('href')).find('.mfp-figure').each(function () {
|
|
items.push({
|
|
src: $(this)
|
|
});
|
|
});
|
|
$.magnificPopup.open({
|
|
items: items,
|
|
gallery: {
|
|
enabled: true
|
|
},
|
|
callbacks: {
|
|
open: function () {
|
|
stopAutoSlideNext();
|
|
$('html').css('margin-right', 0);
|
|
},
|
|
close: function () {
|
|
resetAutoSlideNext();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|