Я новичок в Javascript, и мне очень трудно правильно разработать собственное слайд-шоу.
Я в основном настроил слайд-шоу, состоящее из трех изображений, с setInterval, установленным на функцию 5 секунд, три кнопки для навигации по изображениям и т. д. c.
Единственная проблема, с которой я сталкиваюсь, - это когда пользователь нажимает определенную кнопку (какая кнопка может быть ) таймер не сбрасывается.
Я пробовал несколько разных способов, так как я исследовал это со вчерашнего дня, и я нашел более эффективный способ, которым clearInterval действительно работает после нажатия кнопки, но что происходит, это запускает несколько таймеров. Скажем, если я дважды нажму на кнопку, с секундой после каждого щелчка, первый таймер (из 5 секунд) будет сброшен, однако эти два щелчка создадут два 5-секундных таймера, что сделает слайд-шоу go бананами. Я чувствую, что где-то должен быть .stop (), но я не могу понять, где и даже если в этом и заключается проблема, указанная c.
function myTimer() {
var indice_activo = $('.active').index();
if (indice_activo < $('.intro-slide').length - 1) {
var proximo_indice = indice_activo + 1;
} else {
var proximo_indice = 0;
}
mudar_slide(proximo_indice);
var indice_activo = $('.active').index();
var botao_anterior = indice_activo - 1
// var proximo_indice = indice_activo + 1;
$('.button').removeClass('active-button');
$('.button').eq(indice_activo).addClass('active-button');
if (indice_activo > 0) {
$('.button').eq(botao_anterior).removeClass('active-button');
} else {
$('.button').eq(2).removeClass('active-button');
}
};
// BUTTON CLICK WITH CLEARINTERVAL AND RE-INVOCATION OF FUNCTION
$('.button').click(function() {
clearInterval(intervalo);
setInterval(myTimer, 5000);
$('.button').removeClass('active-button');
var indice_botao_atual = $(this).index();
$('.intro-slide').removeClass('active').stop().fadeOut();
$('.intro-slide').eq(indice_botao_atual).addClass('active').stop().fadeIn();
$(this).addClass('active-button');
});