Problema generale:
come si può far si che, senza l'utilizzo di Ajax, lo stile applicato ad un DIV definito in una pagina HTML o PHP cambi automaticamente ad intervalli definiti?
Soluzione generale:
utilizzando getElementById e javascript.
suo interno un tag HMTL con un attributo ID assolutamente univoco.
cambiarlo indirizzandolo ad un nuovo stile definito nel CSS.
variazioni di stile.
secondi facendo ciclicamente ruotare 2 o più immagini differenti?
Definiamo la situazione:
index.php contiene:
template.css contiene:
#sfondo1 {
url("../images/1.jpg") no-repeat;
prima di tutto devo creare nel file template.css un nuovo selettore ID per quante sono le
immagini che ciclicamente faranno da sfondo al mio DIV, variando di
volta in volta l'immagine di background, quindi:
#sfondo2 {
url("../images/2.jpg") no-repeat;
#sfondo3 {
url("../images/3.jpg") no-repeat;
eccetera...
Veniamo al succo del problema, come cambiare, ad interavalli regolari o no, ID al DIV.
Scriviamo delle semplici funzioni javascript che effetuino questa operazione:
F 0, da richiamare con
< . script type="text/javascript">changebkg() (eliminare i punti)
definizione di < . div id="sfondo1" . >" (eliminare i punti)
changebkg () {
15000);
F 1 – 2 – 3 da
definire in ordine inverso nell'<head> di index.php o da
richiamare dall'estero:
function changebkg3() {
function changebkg2() { document.getElementById('sfondo2').id = 'sfondo3';
Tutto qui? Si, questo è tutto il codice da inserire per implementare il nostro sfondo a rotazione.
ruotare, ma in caso di numero molto alto questa soluzione si rivela immediatamente poco vantaggiosa da molti punti di vista e, purchè funzionante comunque al 100%, dovrebbe essere sostituita con un'altra
più complessa.
Spiego in breve la soluzione: la F0 ha il solo scopo di avviare l'esecuzione delle
funzioni F1, F2 ed F3 che successivamente si richiameranno a loro volta in un ciclo che permetterà la rotazione circolare delle immagini di sfondo.
che permette di definire un tempo di attesa prima della chiamata, ci permetterà quindi di definire il tempo che dovrà trascorrere prima che un'immagine di sfondo venga sostituita con la successiva. Nell'esempio 15000 millisecondi = 15 secondi.
Il metodo getElementById ci permette di richiamare l'elemento desiderato e di cambiarne l'ID, quindi con l'istruzione:
document.getElementById('sfondo1').id = 'sfondo2';
il div "sfondo1" assume l'aspetto dato dal selettore ID nel CSS "#sfondo 2", nel nostro esempio i selettori sono identici, ma varia solo l'immagine di sfondo.
Qualsiasi consiglio su come migliorare questa soluzione oppure soluzioni alternative per lo stesso problema possono essere messi a disposizione di tutti lasciando un commento.

