让jQuery幻灯片动画在单击时停止

让jQuery幻灯片动画在单击时停止,jquery,slideshow,Jquery,Slideshow,我有一个用jQuery构建的幻灯片,它在悬停时暂停。它有一组缩略图放在图像的顶部,当单击时会推进图像,否则幻灯片只会自动在所有图像中旋转。还有一个+/-扩展和收缩与每个图像相关的标题。我想让幻灯片的自动前进停止,如果其中一个缩略图被点击,或+/-。基本上,只要用户单击gallery中的任何位置就停止(div class=“.homeImg”)。为了让它正常工作,我脑子里出了个大屁,我需要一些建议。以下是jQuery: $(document).ready(function() { $(".mai

我有一个用jQuery构建的幻灯片,它在悬停时暂停。它有一组缩略图放在图像的顶部,当单击时会推进图像,否则幻灯片只会自动在所有图像中旋转。还有一个+/-扩展和收缩与每个图像相关的标题。我想让幻灯片的自动前进停止,如果其中一个缩略图被点击,或+/-。基本上,只要用户单击gallery中的任何位置就停止(div class=“.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);

});

在最后一行:
var slideTimer=setInterval(单击下一步,6000)

然后,当您想要停止动画时:
clearInterval(slideTimer)


然后,当您想要重新启动它时,只需再次设置它:
slideTimer=setInterval(单击Next,6000)

我最近在一个div中设置了一个幻灯片放映,并使用递归使幻灯片放映一直播放,直到我的“stop”变量设置为“true”。使用这种方法,幻灯片动画将在您设置stop=true时停止;在onclick或其他过程中:

var stop = false;
var i = 0;

function playGallery(){         
  $("#playerWrapper").fadeOut(1500, function() {

    if(i<8){
      i = i+1;
    } 
    else{
      i = 1;
    }

    $("#playerWrapper")
     .css('background-image','url("images/' + 'brooke' + i + '.jpg' + '")');

    if(!stop) {
      //Use recursion here to keep rotating slides until stop==true
      playGallery();
    }

  }).fadeIn(1500);
}
var-stop=false;
var i=0;
函数playGallery(){
$(“#playerRapper”).fadeOut(1500,function(){

如果(我看不出是什么代码使它在前两个动画之后继续旋转…你没有使用任何计时器?这与单击事件有何关联?我无法在上面提到的任何单击发生时停止自动操作。谢谢!我还应该补充,这似乎会扼杀我的标题显示/隐藏功能。*编辑-我的错误,典型错误o、 您可以将第二行添加到要停止自动播放的事件中,将第三行添加到要重新启动自动播放的任何事件中。好的,是的,成功了。不确定我的问题是什么。感谢帮助!var slideTimer=setInterval(clickNext,6000);$('.test')。单击(function(){clearInterval(slideTimer);});