我刚刚学会了这个,所以我会尽可能清楚地解释它。
我有一个循环的功能。我想要完成的是当某些东西悬停在循环停止上,然后在光标离开时再次启动。这似乎工作正常,但如果我悬停,离开,然后再次悬停动画保持循环。最糟糕的是,如果我鼠标进/出两次,循环间隔会更新,所以它会在设定的时间内循环两次。
无论如何,这是我正在使用的代码:
var transition_delay = "3000";
function next_image(){
var current_eq = $('ul#triggers li.current_trigger').index();
if (current_eq == li_count) { //if this is the last image in the array
$triggers.removeClass("current_trigger").eq(0).addClass("current_trigger"); //removes current and adds it to next
$displays.fadeOut("slow").eq(0).fadeIn("slow"); //fades out then in next display
}
else { //if not last image
$triggers.removeClass("current_trigger").eq(current_eq + 1).addClass("current_trigger"); //removes current class and adds it to next
$displays.fadeOut("slow").eq(current_eq + 1).fadeIn("slow"); //fades out then next display in
}
};
$triggers.hover(
function(){ //in
console.log("clearing");
clearInterval(next_image_interval);
},
function(){ //out
console.log("starting");
sliderIntervalID = setInterval(function(){next_image();},,transition_delay);
});
next_image_interval = setInterval(function(){
next_image();
}, transition_delay);
答案 0 :(得分:2)
在悬停时,你这样做:
sliderIntervalID = setInterval(function(){next_image();},,transition_delay);
但你正在清理:
clearInterval(next_image_interval);
将sliderIntervalID
更改为next_image_interval
,应该按预期工作。