Barra del titolo animata


Con il javascript tutto (o quasi) è possibile. Anche cambiare il testo della barra del titolo del vostro navigatore. Questo grazie alla chiamate a document.title.
Ora, con un pizzico di inventiva, possiamo non solo cambiare il titolo a nostro piacimento, ma possiamo anche animarlo grazie ai metodi visti negli altri esempi delle pagine precedenti. Iniziando da una animazione molto ma molto semplice, ecco un po' di codice per movimentare la barra:

<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


Come c'è scritto sopra non c'è limite al numero di messaggi che verranno visualizzate.
Oltre a questo effetto ce n'è un altro molto gradevole, ovvero scrivere il testo come se venisse digitato (in gergo, un effetto 'typewriter').
Vediamo adesso come implementarlo:

<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).


Ora che avete visto come si fa con il codice, dovete impegnarvi e usare un po' di fantasia. Purtroppo sulla fantasia non posso farvi un tutorial, o uno ce l'ha oppure no! Basta che pensiate a qualcosa e poi proviate a metterla in pratica!!!