var slideTimer; $.fn.extend({ animateCss: function (animationName, callback) { this.addClass('animated ' + animationName).one(animationEnd, function() { $(this).removeClass('animated ' + animationName); if (callback) { callback(); } }); return this; } }); function slideLeft() { var slides = $('.slider').data('slides'); var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'; var nextSlide = 0 var currentSlide = $('.slider').data('active'); if(currentSlide - 1 <= 0){ nextSlide = slides; } else { nextSlide = $('.slider').data('active')- 1; } if ($( '.slider .images>div[data-slide="' + currentSlide + '"]' ).hasClass('animated')) { return false; } else { $( '.slider .images>div[data-slide="' + nextSlide + '"]').addClass('active'); $( '.slider .images>div').removeClass('kenburns'); $('.slider').data('active', nextSlide); $( '.slider .images>div[data-slide="' + currentSlide + '"]').addClass('animated slideOutRight').one(animationEnd, function() { $( '.slider .images>div').addClass('testClass'); $( '.slider .images>div' ).removeClass('animated slideOutLeft slideOutRight slideInRight slideInLeft'); }); $( '.slider .images>div[data-slide="' + nextSlide + '"]').addClass('animated slideInLeft').one(animationEnd, function() { $( '.slider .images>div' ).removeClass('animated slideOutLeft slideOutRight slideInRight slideInLeft active'); $( '.slider .images>div[data-slide="' + nextSlide + '"]').addClass('active'); $( '.slider .images>div[data-slide="' + nextSlide + '"]').addClass('kenburns'); }); $( '.slider .text>div[data-slide="' + currentSlide + '"]' ).addClass('animated fadeOut').one(animationEnd, function() { $( '.slider .text>div' ).removeClass('animated fadeOut fadeIn'); $( '.slider .text>div[data-slide="' + nextSlide + '"]').addClass('active'); $( '.slider .text>div[data-slide="' + currentSlide + '"]').removeClass('active'); $( '.slider .text>div[data-slide="' + nextSlide + '"]' ).addClass('animated fadeIn').one(animationEnd, function() { $( '.slider .text>div' ).removeClass('animated fadeOut fadeIn active'); $( '.slider .text>div[data-slide="' + nextSlide + '"]').addClass('active'); }); }); clearInterval(slideTimer); slideTimer = window.setInterval(slideRight, 8000); } } function slideRight() { var slides = $('.slider').data('slides'); var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'; var nextSlide = 0 var currentSlide = $('.slider').data('active'); if(currentSlide + 1 > slides){ nextSlide = 1; } else { nextSlide = $('.slider').data('active') + 1; } if ($( '.slider .images>div[data-slide="' + currentSlide + '"]' ).hasClass('animated')) { return false; } else { $( '.slider .images>div[data-slide="' + nextSlide + '"]').addClass('active'); $( '.slider .images>div').removeClass('kenburns'); $('.slider').data('active', nextSlide); $( '.slider .images>div[data-slide="' + currentSlide + '"]' ).addClass('animated slideOutLeft').one(animationEnd, function() { $( '.slider .images>div').removeClass('testClass'); $( '.slider .images>div' ).removeClass('animated slideOutLeft slideOutRight slideInRight slideInLeft'); }); $( '.slider .images>div[data-slide="' + nextSlide + '"]' ).addClass('animated slideInRight').one(animationEnd, function() { $( '.slider .images>div' ).removeClass('animated slideOutLeft slideOutRight slideInRight slideInLeft active'); $( '.slider .images>div[data-slide="' + nextSlide + '"]').addClass('active'); $( '.slider .images>div[data-slide="' + nextSlide + '"]').addClass('kenburns'); }); $( '.slider .text>div[data-slide="' + currentSlide + '"]' ).addClass('animated fadeOut').one(animationEnd, function() { $( '.slider .text>div' ).removeClass('animated fadeOut fadeIn'); $( '.slider .text>div[data-slide="' + nextSlide + '"]').addClass('active'); $( '.slider .text>div[data-slide="' + currentSlide + '"]').removeClass('active'); $( '.slider .text>div[data-slide="' + nextSlide + '"]' ).addClass('animated fadeIn').one(animationEnd, function() { $( '.slider .text>div' ).removeClass('animated fadeOut fadeIn active'); $( '.slider .text>div[data-slide="' + nextSlide + '"]').addClass('active'); }); }); clearInterval(slideTimer); slideTimer = window.setInterval(slideRight, 8000); } } $( document ).ready(function() { var currentX; var lastX = 0; var lastT; $( '.slider .arrow-left' ).bind('click', function() { slideLeft(); }); $( '.slider .arrow-right' ).bind('click', function() { slideRight(); }); $( '.slider .images' ).on( 'touchmove' , function(e) { // If still moving clear last setTimeout clearTimeout(lastT); currentX = e.originalEvent.touches[0].clientX; // After stoping or first moving if(lastX == 0) { lastX = currentX; } if(currentX < lastX) { slideRight(); } else if(currentX > lastX){ slideLeft(); } // Save last position lastX = currentX; // Check if moving is done lastT = setTimeout(function() { lastX = 0; }, 100); }); slideTimer = window.setInterval(slideRight, 8000); });