Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Eu programei um slideshow e coloquei a função setInterval para executar sozinho até clicar no botão.
// Inicia meu primeiro slide
executaSlide("#Slide");
// Passa os demais slides de acordo com o tempo
var intervalo = window.setInterval(function()
{
executaSlide("#Slide");
}, 9000);
$('#botao_slide1').click(function() clearInterval(intervalo);
// Executa somente o slide pedido
executaSlide('#Slide #Slide1');
});
Dessa forma funciona perfeitamente. Quando clico no botão o Slideshow para no objeto que eu desejo. Contudo eu gostaria que o voltasse passar os slides após um tempo parado. Então fiz esse incremento:
// Inicia meu primeiro slide
executaSlide("#Slide");
// Passa os demais slides de acordo com o tempo
var intervalo = window.setInterval(function()
{
executaSlide("#Slide");
}, 9000);
$('#botao_slide1').click(function() clearInterval(intervalo);
// Executa somente o slide pedido
executaSlide('#Slide #Slide1');
// Volta passar automático após o tempo estabelecido
var intervalo = window.setInterval(function() executaSlide("#Slide");
}, 20000);
});
Mas dessa forma não funcionou correto. O Slideshow continua passando automaticamente baseado no tempo do primeiro "intervalo", e me parece que mistura com o segundo intervalo.
Por favor, poderia me auxiliar a resolver esse script?
Obrigado a todos.
Eu começaria o steInterval novamente dentro do setTimeout?
Dentro do click coloquie window.clearinterval(intervalo) e abri um setTimeout com delay de 20000 e não funcionou... continua obecedendo o setInterval de fora da função.
você precisa alterar o escopo da variavel intervalo.
ela tem q ser global, e não global e local, como está agora.
perfeito!.
valeu.
você precisa de um window.clearInterval().
Assim que clicar no botão, você manda um clear. Depois pode atrasar a exibição automática com um setTimeout(), e então recomeçar o setInterval().