Visualizzazione dei risultati da 1 a 2 su 2

Hybrid View

  1. #1

    Fermare una funzione chiamata con setInterval

    Salve a tutti ho scritto le seguenti funzioni:


    codice:
                var idFadeOut;
                var g_Current=0;
                function    coverFadeOut(elmCoverImg){
    
    
                            //var elmCoverImg = document.getElementById("coverImg");
                            var iCurrentOpacity = elmCoverImg.style.opacity;
                            elmCoverImg.style.opacity= iCurrentOpacity - 0.2;
                            
                            var idFadeOut;
                            
                            if    (elmCoverImg.style.opacity>0){
                            
                                idFadeOut = setInterval(function(){coverFadeOut(elmCoverImg)},200);
                                document.getElementById("text").innerHTML = elmCoverImg.style.opacity + " opacità";                            
                            }else{
                                clearInterval(idFadeOut);
                                g_Current++
                                document.getElementById("text2").innerHTML = g_Current + " Terminato";    
                            }
                }
                
                function    coverSlideShow(){
                            
                            var elmCoverImg =  document.getElementById("coverImg_" + g_Current);
                            coverFadeOut(elmCoverImg);
                
                }
                
                onload= function(){
                    var iCountId=0;
                    coverSlideShow();
                }
    Putroppo però la funzione non si ferma quando richiamo clearInterval, il ramo dell'else viene continuamente eseguito (come dimostra l'incremento del valore che stampo a video).
    Mi viene in mente che clearInterval elimini l'id del task creato precedentemente dal setInterval in questo caso eliminerebbe soltanto l'ultimo settato.
    Può essere questo il problema?
    Se sì come risolvo?

    Se no mi sapete dare suggerimenti?
    Grazie a chi mi darà una mano!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    usa setTimeout() e clearTimeout() al posto di setInterval() e compagna
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.