<div id="esempio5"> Io sono il testo che cambia colore </div> <form> <input type="button" value="Via!" onclick="via();"> <input type="button" value="Stop!" onclick="stop();"> </form> <cript language="javascript"> function ccolore() { var oggi = new Date(); var secs = oggi.getSeconds(); if(secs%5==0) {document.all.esempio5.style.color='red';} else if(secs%5==1) {document.all.esempio5.style.color='orange';} else if(secs%5==2) {document.all.esempio5.style.color='yellow';} else if(secs%5==3) {document.all.esempio5.style.color='green';} else if(secs%5==4) {document.all.esempio5.style.color='cyan';} } function via() { intervallo = setInterval("ccolore()", 1000); } function stop() { clearInterval(intervallo); } </script> |
Per prima cosa si crea un oggetto con nome esempio5 all'interno del tag <div> contenente il testo specificato. Successivamente si creano i bottoni per far partire e fermare l'animazione (clicca QUI per sapere come si fa a fare funzionare lo script senza usare i bottoni). Poi si definisce la funzione vera e propria. Come abbbiamo già visto altrove, la prima cosa da fare per questo tipo di animazioni è avere un qualcosa che cambia ad ogni chiamata della funzione, ovvero i secondi, quindi creiamo una variabile che contenga i secondi. In seguito facciamo una serie di confronti con if e in relazione al valore preso dalla variabile secs associamo al testo un colore. Adesso creiamo le due funzioni per far partire e fermare l'animazione. Sono molto semplici: la prima imposta un intervallo e la seconda lo toglie. Nulla di più facile! Come fare a usare lo script senza servirsi dei bottoni: Intanto togliete il form con i bottoni :-D Togliete anche le funzioni via() e stop() che a questo punto non servono più. A questo punto dovete reinserire il metodo che segna l'intervallo tra una chiamata della funzione e l'altro. Allora basta inserire queste righe di codice dopo la fine di questo script: <script language="javascript"> setInterval("ccolore()", 1000); ccolore(); </script> La chiamata di funzione serve per farla partire, mentre per quanto riguarda il metodo setInterval non ha bisogno di essere associato ad una variabile perché non deve essere fermato, quindi non cè bisogno di un eventuale argomento per il metodo che lo toglie. |