我将这些指示符链接到每张幻灯片,但是当我到达第11张幻灯片时,如果我再次继续在幻灯片中循环,则会停止。我需要它在12点击中之后回到一个。可以任何人帮助。
for (var i = 1; i <= 12; i++) {
if (jQuery('#slide-' + i).is(':visible')) {
console.log('#slide-' + i);
jQuery('#page_count-' + i).addClass('active');
} else {
jQuery('#page_count-' + i).removeClass('active');
};
};
我试过了: if(i = 12){ i = 1; };
但它打破了页面....任何想法?
答案 0 :(得分:2)
就个人而言,我会使用递归函数代替循环。
var current_slide = 1;
var number_of_slides = 3;
var time_between_slides = 3000; // ms
var nextSlide = function() {
// do your stuff that changes slides here
if (current_slide < number_of_slides) {
current_slide++;
} else {
current_slide = 1;
}
window.setTimeout(function() {
nextSlide() // function calls its self, creating an "infinite loop"
}, time_between_slides);
};
window.setTimeout(function() {
nextSlide(); // initially call the function to go to the next slide
}, time_between_slides);
答案 1 :(得分:0)
function repeat(i) {
i++;
if (jQuery('#slide-' + i).is(':visible')) {
console.log('#slide-' + i);
jQuery('#page_count-' + i).addClass('active');
} else {
jQuery('#page_count-' + i).removeClass('active');
};
i = i % 12;
if( i == 0 ) {
setTimeout(function() {
repeat(0);
},5000); // delay of 5 seconds.
}
else {
repeat(i);
}
}
repeat(0);
编辑:像TrueBlueAussie建议的那样,删除了循环解决方案。
编辑2:由于TrueBlueAussie,修复了愚蠢的逻辑错误。 这将快速运行前12个呼叫,然后延迟5秒钟 重新启动。