Ir para conteúdo
Fórum Script Brasil
  • 0

SetTimeout e SetInterval - dificuldade


moisesf

Pergunta

No final da tag body tenho um script que busdca uma imagem e chama outra função (1)

Até aí tudo funcionando, é dado um loop nas imagens de uma a uma.

Tenho 2 botões seguinte e anterior (2)

Seguinte acrescenta 1 e anterior -1

E ambos tem a chamada:clearinterval.

Os botões funcionam normalmente,

Mas quando coloco um botão "play para a função:mostra_slyde_play que está bem abaixo

Os botões mostraslide não param mais o loop de imagens como antes parava.

Como dar esse play e os botões funcionarem?

Resumindo: uso para iniciar a rotação das imagens:   var intervalo = window.setInterval("MostraSlide_time(1)", 3000);
Para Parar: clearInterval(intervalo);
Pra reiniciar no botão  Play: var intervalo = window.setInterval("MostraSlide_time(1)", 3000);
Mas quando Paro e clico para reiniciar, o botão parar, não funciona mais
[b](1)[/b]
<script language="javascript" type="text/javascript">

 var qtdImagens="6";

     imagens = new Array ("foto1.jpg","foto2.jpg","foto3.jpg","foto4.jpg","foto5.jpg","foto6.jpg"); 
  for(i = 0; i < qtdImagens; i++) { 
  var indImg = Math.round(Math.random()*(imagens.length - 1));
       var foto = imagens[indImg];            
document.getElementById("mostra_foto").style.background="url('images/" + foto + "') no-repeat";
         setTimeout ("MostraSlide_time(1)", 3000);
        
                 }
          
</script>


/*ESTA É A FUNÇÃO CHAMADA*/
&lt;script language="javascript" type="text/javascript">
<!--
 var intervalo = window.setInterval("MostraSlide_time(1)", 3000);


var Slide = new Array ("foto1.jpg","foto2.jpg","foto3.jpg","foto4.jpg","foto5.jpg","foto6.jpg"); 
var indSlide = 0;
var ultSlide = Slide.length -1;
// Função controla a seqüência de slides.
function MostraSlide_time(direcao){
   indSlide = indSlide + direcao;
   if(indSlide > ultSlide){indSlide = 0};
   if(indSlide < 0) {indSlide = ultSlide};
   /*document.FigSlide.src = Slide[indSlide];*/
   foto = Slide[indSlide];
   document.getElementById("mostra_foto").style.background="url('images/" + foto + "') no-repeat";


}


//-->
</script>





[b](2)[/b]

<div id="seguinte" onclick="MostraSlide(1); clearInterval(intervalo);" title="Seguinte" ></div>
<div id="anterior" onclick="MostraSlide(-1);clearInterval(intervalo);"  title="Anterior" ></div>


&lt;script language="javascript" type="text/javascript">
<!--
var Slide = new Array ("foto1.jpg","foto2.jpg","foto3.jpg","foto4.jpg","foto5.jpg","foto6.jpg"); 
var indSlide = 0;
var ultSlide = Slide.length -1;
// Função controla a seqüência de slides.
function MostraSlide(direcao){
   indSlide = indSlide + direcao;
   if(indSlide > ultSlide){indSlide = 0};
   if(indSlide < 0) {indSlide = ultSlide};
   /*document.FigSlide.src = Slide[indSlide];*/
   foto = Slide[indSlide];
   document.getElementById("mostra_foto").style.background="url('images/" + foto + "') no-repeat";
}
//-->
</script>



           

/*FUNÇÃO MOSTRASLIDE_PLAY*/

&lt;script language="javascript" type="text/javascript">
function MostraSlide_play(){
 var intervalo = window.setInterval("MostraSlide_time(1)", 3000);
               
                                  
                 }
</script>

Editado por Jonathan Queiroz
Modificar parte do tópico em caixa alta (Jonathan)
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Talvez seja porque o var interval esteja dentro do escopo da função MostraSlide_play.

Não consigo entender sua lógica, o código está um pouco bagunçado estou dando um tiro no escuro.

Tire o "var" do intervalo da função MostraSlide_play. Parece que está tendo problemas de escopo aí.

Melhore a formatação do seu script, indente o código de forma a tornar um pouco mais agradável ao ler.

Moisés, está postando várias vezes para o mesmo problema. Isto nos dá 2 problemas.

A primeira é ficar moderando esses tópicos... o que é tremendamente chato.

O segundo e mais importante é que você ao invés de convergir o seu problema para um lugar só, você diverge, e fica mais difícil para quem está acompanhando o seu problema te ajudar. A pessoa que tenta ajudar e vê 3 tópicos distintos falando a mesma coisa, perde completamente o interesse no seu problema.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...