これが私が達成しようとしていることです。最後のスライドに到達すると、fadeOutの最後のスライド、次にfadeInの最初のスライド、次に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);
});