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

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();
}
}
});
});
});