Получение анимации слайд-шоу jQuery остановиться по щелчку

Мне создали показ слайдов с jQuery, который это приостанавливает на парении. Это имеет группу миниатюр, находящихся сверху изображения, которое совершенствует изображение при нажатии, иначе слайд-шоу просто самовращается через все изображения. Существует также +/-, чтобы развернуть и заключить подпись, связанную с каждым изображением. Я хочу иметь автоматическое усовершенствование слайд-шоу, чтобы остановиться, если одна из миниатюр нажата, или +/-. В основном просто остановитесь каждый раз, когда пользователь нажимает где угодно в галерее (класс отделения = ". homeImg"). Я имею главный заскок в получении этой работы правильно и мог использовать некоторый совет. Вот jQuery:

$(document).ready(function() {

$(".main_image .desc").show(); //Show image info
$(".main_image .block").animate({ opacity: 0.85 }, 1 ); //Set Opacity

//Click and Hover events for thumbnail list
$(".image_thumb ul li:first").addClass('active');

// * Adds a class 'last' to the last li to let the rotator know when to return to the first
$(".image_thumb ul li:last").addClass('last');

$(".image_thumb ul li").click(function(){
//Set Variables
var imgAlt = $(this).find('img').attr("alt"); //Get Alt Tag of Image
var imgTitle = $(this).find('a').attr("href"); //Get Main Image URL
var imgDesc = $(this).find('.block').html(); //Get HTML of block
var imgDescHeight = $(".main_image").find('.block').height();   //Calculate height of block

if ($(this).is(".active")) { //If it's already active, then…
return false; // Don't click through
} else {
//Animate
$(".main_image img").animate({ opacity: 0}, 800 );
$(".main_image .block").animate({ opacity: 0, marginBottom: -imgDescHeight }, 800, function() {
$(".main_image .block").html(imgDesc).animate({ opacity: 0.85, marginBottom: "0" }, 250 );
$(".main_image img").attr({ src: imgTitle , alt: imgAlt}).animate({ opacity: 1}, 250 );
});
}

$(".image_thumb ul li").removeClass('active'); //Remove class of 'active' on all lists
$(this).addClass('active'); //add class of 'active' on this list only
return false;

}) .hover(function(){
$(this).addClass('hover');
}, function() {
$(this).removeClass('hover');
});

//Toggle teaser
$("a.collapse").click(function(){
$(".main_image .block").slideToggle();
$("a.collapse").toggleClass("show");
return false; // added to remove # browser jump
});

// If we are hovering over the image area, pause the clickNext function
pauseClickNext = false;
$(".homeImg").hover(
function () {
pauseClickNext = true;
},
function () {
pauseClickNext = false;
}
);

// Define function to click the next li
var clickNext = function(){
if(!pauseClickNext) {
/// find the next li after .active
var $next_li = $("li.active").next("li");
if($("li.active").hasClass("last") ){
$(".image_thumb ul li:first").trigger("click");
} else {
$next_li.trigger("click");
}
}
};

// Time between image transition
setInterval(clickNext, 6000);

});
1
задан user279860 25 May 2010 в 17:18
поделиться

1 ответ

В вашей последней строке: var slideTimer = setInterval (clickNext, 6000);

Затем, когда вы хотите остановить анимацию: clearInterval (slideTimer);

Затем, когда вы хотите перезапустить он просто установил его снова: slideTimer = setInterval (clickNext, 6000);

2
ответ дан 3 September 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: