Слайд-шоу изображений jQuery, которое после остановки возвращается к первому изображению
Я пытаюсь создать слайд-шоу с изображением, которое после его остановки возвращается к первому изображению, но не получается. Кто-нибудь будет так любезен, чтобы указать мне на решение?
Вот код: http://codepen.io/peterschmidler/pen/hFHtJ
Большое спасибо!
PS
3 ответа
Решение
Код: http://codepen.io/anon/pen/zJFcj
if (context.hasClass("stopshow")) {
next = context.find('.images img:first');
stopshow = true;
}else{
next = next.length ? next : context.find('.images img:first');
}
Здесь мы просто проверяем, если класс stopshow
присутствует, и с помощью простого if
заявление, чтобы манипулировать нашим назначением next
,
Затем в обратном вызове анимации мы повторяем только если stopshow
переменная не верна
if(!stopshow) filesCrossfade(context)
$(document).ready(function(){
function filesCrossfade(context) {
if (context.hasClass("stopshow")) {
context.find('.images img.active').removeClass('active').delay(500).fadeOut(500);
context.find('.images img:first').addClass('active').delay(500).fadeIn(500);
return;
}
if (context.find('.images img').length > 1) {
var active = context.find('.images img.active');
var next = active.next();
next = next.length ? next : context.find('.images img:first');
active.removeClass('active').delay(500).fadeOut(500);
next.addClass('active').delay(500).fadeIn(500, function() {
filesCrossfade(context) });
}
}
$(".content .slideshow").each(function(){
$(this).find('.images img').hide();
$(this).find('.images img').eq(0).fadeIn(500);
});
filesCrossfade($(".content .slideshow").eq(0));
$('.stop').click(function(){
$(".content .slideshow").eq(0).addClass("stopshow");
});
});
Зачем заново изобретать колесо? Попробуйте известный плагин jQuery для создания слайдшоу. Он легкий, работает на мобильных устройствах, очень прост в реализации и имеет множество полезных опций настройки. Смотрите здесь.