Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Loop javaScript

  1. #1

    Loop javaScript

    Salve a tutti!

    Scusate la domanda sciocca, ma come faccio a far girare una funzione javaScript all'infinito?

    per esempio questo pezzo di codice:
    <script>
    $(document).ready(function(){
    $("#btn1").click(function(){
    $("#id").animate({right:"+=200px"
    },'slow');
    $("#id").animate({bottom: "+=200px"
    },'slow');
    $("#id").animate({left: "+=200px"

    },'slow');
    $("#id").animate({top: "+=200px"

    },'slow');

    });
    });
    </script>

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    devi usare una funzione ricorsiva https://msdn.microsoft.com/it-it/lib...(v=vs.94).aspx

    puoi anche provare con setInterval o setTimeout http://www.w3schools.com/js/js_timing.asp

  3. #3
    scusa ma la funzione in pratica imposta un veneto su un bottone, giusto?
    che senso ha impostare un loop infinito su una cosa del genere??

  4. #4
    non ha un senso in particolare, voglio solo capire come si fa

  5. #5
    Quote Originariamente inviata da jesbroo Visualizza il messaggio
    non ha un senso in particolare, voglio solo capire come si fa
    si ma nn ha senso applicare un loop al tuo esempio.
    hai impostato un evento su un id #btn, fine.
    che loop vorresti fare?
    o cosa vorresti ottenere?

    se vuoi capire come eseguire un loop con javascript o jquery, questo non è l'esempio giusto.
    questo intendevo dire!

    questo potrebbe essere un esempio banale:
    codice:
    while (true)  {
          myFunction();
    }
    oppure:
    codice:
    for (;;) {
          myFunction();
    }
    oppure ancora guarda qua: http://www.w3schools.com/js/tryit.as...iming_infinite

    Ultima modifica di fermat; 23-11-2015 a 23:34

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    a me pare abbia senso, vuole ripetere l'animazione all'infinito, la prima volta l'animazione viene lanciata da bottone

    Una soluzione potrebbe essere questa:

    codice:
    $("#btn1").click(avviaAnimazione);
    
    function avviaAnimazione(){
    $("#id").animate({right:"+=200px"
    },'slow');
    $("#id").animate({bottom: "+=200px"
    },'slow');
    $("#id").animate({left: "+=200px"
    
    },'slow');
    $("#id").animate({top: "+=200px"
    
    },'slow', avviaAnimazione);
    
    )

  7. #7
    Quote Originariamente inviata da Vindav Visualizza il messaggio
    a me pare abbia senso, vuole ripetere l'animazione all'infinito, la prima volta l'animazione viene lanciata da bottone

    Una soluzione potrebbe essere questa:

    codice:
    $("#btn1").click(avviaAnimazione);
    
    function avviaAnimazione(){
    $("#id").animate({right:"+=200px"
    },'slow');
    $("#id").animate({bottom: "+=200px"
    },'slow');
    $("#id").animate({left: "+=200px"
    
    },'slow');
    $("#id").animate({top: "+=200px"
    
    },'slow', avviaAnimazione);
    
    )
    ah ok, si in questo modo si.
    non avevo capito bene cosa voleva ottenere.

  8. #8
    Grazie mille a tutti!
    e grazie Vindav per la comprensione!

  9. #9
    +1 per setInterval, tenere occupato l'event loop in continuazione rallenta pesantemente l'esperienza utente sulla pagina
    Video Corso JavaScript ES2015 - http://corso-javascript.it

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.