【发布时间】:2012-06-07 15:33:59
【问题描述】:
这就是我想要完成的事情:当到达最后一张幻灯片时,淡出最后一张幻灯片,然后淡入第一张幻灯片,然后 clearInterval (一切都适用于这部分)。现在我的问题是,如果 setInterval 不存在但我不知道如何实现它,我想 再次 设置它:(
我试图用 if 语句解决这个问题,但后来我的脚本根本不起作用!
那么我怎样才能重新开始我的间隔?谢谢!
没有这样的 if 语句它工作正常:
if(!intervalID){
intervalID = setInterval(animate,5000);
}
这是我目前所拥有的:
$(document).ready(function() {
/*check if intervalID don't exists messes UP!!*/
if (!intervalID) {
intervalID = setInterval(animate, 5000);
}
//Hide everything except first slide and controls
$('.slidewrap div:not(.slidewrap div:first,.slidewrap .slide_controls)').hide();
var animate = function() {
/*if .pagination_active is last removeClass and addClass to .pagination_active
first li tag*/
if ($('.pagination_active').is($('.slide_controls ul li:last'))) {
$('.pagination_active').removeClass('pagination_active');
$('.slide_controls ul li:first').addClass('pagination_active');
} else {
$('.pagination_active').removeClass('pagination_active').next().addClass('pagination_active');
}
/*if div.active is last fadeOut and add .active class
to the first div and fadeIn FIRST div then CLEAR INTERVAL and set intervalID to zero */
if ($('.active').is($('.slidewrap div:last'))) {
$('.active').fadeOut(1000).removeClass('active');
$('.slidewrap div:first').addClass('active').fadeIn(1000, function() {
clearInterval(intervalID);
intervalID = 0;
});
}
//OR .active fadeOut and next div fadeIn
else {
$('.active').fadeOut(1000).next().fadeIn(1000, function() {
$('.slidewrap div.active').removeClass('active').next('div').addClass('active');
});
}
}
var intervalID;
intervalID = setInterval(animate, 3000);
});
【问题讨论】:
-
无法重启;已清除,已删除。您可以做的是使用相同的功能开始一个新的间隔。 ——
-
@Blazemonger 先生,您正在编辑我的帖子,同时也在编辑我。所以我失去了你宝贵的编辑。如果您觉得有必要,您可以编辑我的答案,我会很高兴
标签: javascript jquery