<script language="javascript"> function ruota() { var oggi = new Date(); var secs = oggi.getSeconds(); if (secs%2==0) { } if (secs%2==1) { document.title="Cambio il testo al mio interno!"; } } setInterval("ruota()", 1000); ruota(); </script> |
Si crea una funzione, e si prende il valore assunto dai secondi quando viene effettuata la chiamata a questa funzione. Con un paio di if si controlla il valore del modulo dei secondi diviso due (per più messaggi cambiate questo valore tenendo conto che facendo una operazione del tipo secs%n si avranno n casi diversi tra cui scegliere. Con document.title si stampano le frasi volute e con il setInterval() indichiamo ogni quanti millisecondi deve essere effettuata la chiamata a ruota |
<script language="javascript"> var i = 0; var buffer = new String(''); function typew() { var testo = new String('Effetto typewriter!!! '); if (i>30) { i = 0; buffer=''; } if (i<30) { buffer=buffer+testo.charAt(i); document.title = buffer; } i++; setTimeout("typew()", 250); } typew(); </script> |
Si creano due variabili FUORI della funzione (altrimenti a ogni giro tutto si azzera e non funziona niente), una come contatore (i) e una come buffer (buffer, appunto) per immagazzinare e stampare il messaggio nella barra del titolo. La variabile che contiene la frase può o meno stare dentro la funzione, tanto non necessita cambiamenti. State attenti solo al fatto che dopo i punti esclamativi ci sono un po' di spazi (in questo caso sono 10) per far si che la frase resti là per un po' di tempo dopo che è stato scritto tutto. Poi si creano due espressioni condizionali: la prima per valori della variabile contatore magiore di 30 (il numero di caratteri della stringa testo. Funziona ugualmente con testo.length, e tra l'altro è anche più professionale come dice il mio amico Pigna, e tra l'altro non c'è da cambiare nulla nel codice quando variate la frase, ma qui ho voluto semplificare al max per farmi capire da tutti). Se quindi i è maggiore del numero massimo di caratteri della stringa, si azzera il contatore (preparandolo per ripartire) e si azzera il buffer. Se i è minore di trenta (ovvero ci sono ancora caratteri da stampare per finire la frase), si aggiunge a buffer il carattere che ha la stessa posizione di i all'interno della stringa di testo, e poi si scrive il tutto nella barra del titolo. Alla fine si incrementa i (altrimenti non va avanti e si ferma dopo la prima lettera), e si mette un setTimeout() che indica dopo quanti millisecondi fare UNA chiamata alla funzione passata come argomento (in questo caso se stessa, per iterare il processo). |