Javascript
Cambio dello sfondo della pagina in base all'orario.
Questo script ha un effetto puramente decorativo: in base all'ora in cui viene caricata la pagina, alla stessa verrà assegnato uno sfondo diverso. Dal momento che molti blog stanno preparando delle skin invernali, si potrebbe fare un buon uso di questo script inserendolo in un periodo prossimo alle festività.
Inserite questo tra i tag <head></head> della vostra pagina web (oppure in cima a tutte le pagine nella sezione gestione HTML se volete metterlo all'interno di un blog):
HTML
<script language="javascript">
var ore = new Date().getHours();
var immagini = new Array();
// modifica qui
aggiungiSfondo(22,23,"immagine notte");
aggiungiSfondo(0,5,"immagine notte");
aggiungiSfondo(6,8,"immagine alba");
aggiungiSfondo(9,12,"immagine mattino");
aggiungiSfondo(13,17,"immagine pomeriggio");
aggiungiSfondo(18,21,"immagine sera");
//fine modifica
function aggiungiSfondo(oraInizio, oraFine, immagine){
oraInizio = Math.max(oraInizio,0);
oraInizio = Math.min(oraInizio,23);
oraFine = Math.max(oraFine ,0);
oraFine = Math.min(oraFine ,23);
if(oraInizio>oraFine)
oraInizio = oraFine;
for(var i = oraInizio;i<=oraFine;i++)
immagini[i] = immagine;
}
document.write("<style> body{background-image: url("+immagini[ore]+")}</style>");
</script>
var ore = new Date().getHours();
var immagini = new Array();
// modifica qui
aggiungiSfondo(22,23,"immagine notte");
aggiungiSfondo(0,5,"immagine notte");
aggiungiSfondo(6,8,"immagine alba");
aggiungiSfondo(9,12,"immagine mattino");
aggiungiSfondo(13,17,"immagine pomeriggio");
aggiungiSfondo(18,21,"immagine sera");
//fine modifica
function aggiungiSfondo(oraInizio, oraFine, immagine){
oraInizio = Math.max(oraInizio,0);
oraInizio = Math.min(oraInizio,23);
oraFine = Math.max(oraFine ,0);
oraFine = Math.min(oraFine ,23);
if(oraInizio>oraFine)
oraInizio = oraFine;
for(var i = oraInizio;i<=oraFine;i++)
immagini[i] = immagine;
}
document.write("<style> body{background-image: url("+immagini[ore]+")}</style>");
</script>
Ora modifichiamo il codice in base alle nostre esigenze:
Passiamo alla riga con il commento // modifica qui. Nella riga inferiore cominciono le attribuzione degli orari alle immagini.
La sintassi da utilizzare è la seguente:
aggiungiSfondo(orario_inizio_sfondo, orario_termine_sfondo, collegamento_alla_immagine);
Sostituiamo a orario_inizio_sfondo l'ora in cui l'immagine comincerà ad essere visualizzata;
Sostituiamo a orario_termine_sfondo l'ultima ora in cui l'immagine sarà ancora visualizzata;
Sostituiamo a collegamento_alla_immagine, appunto, il collegamento diretto all'immagine da utilizzare (l'indirizzo dovrà essere comunque compreso tra le doppie virgolette)
Esempio pratico: se vogliamo che uno sfondo venga mantenuto dalle 10 alle 15 e che questo sfondo si trovi sull'indirizzo "http://sfondi.it/pomeriggio.jpg" dovremmo scrivere aggiungiSfondo(10, 15,"http://sfondi.it/pomeriggio.jpg");
Questo processo dovrà essere ripetuto tante volte quanti sono gli sfondi utilizzati, senza sovrascrivere gli orari inseriti precedentemente. Dovete cioè scrivere:
aggiungiSfondo(10, 15,"http://sfondi.it/pomeriggio.jpg");
aggiungiSfondo(16, 20,"http://sfondi.it/sera.jpg");
aggiungiSfondo(21, 23,"http://sfondi.it/sera.jpg");
senza che l'orario di inizio e di fine coincidano.
Non vale scrivere aggiungiSfondo(16, 20,"http://sfondi.it/sera.jpg"); e aggiungiSfondo(14, 16,"http://sfondi.it/pomeriggio.jpg"); l'orario di inizio della prima istruzione coincide con quella finale della seconda; non potendo esistere 2 sfondi nello stesso orario, quella dichiarato per primo verrà sovrascritto, cioè dalle 16.00 alle 16.59 verrà visualizzato lo sfondo "http://sfondi.it/pomeriggio.jpg".
Un'altra osservazione da fare è che non potete scrivere degli intervalli di orari che superano le 23. Vale a dire che non potete scrivere aggiungiSfondo(21, 2,"http://sfondi.it/notte.jpg"); in quanto il 2 si referisce al giorno successivo e quindi ad un orario dopo le 23. Per ovviare a questo problema potete comunque scrivere
aggiungiSfondo(21, 23,"http://sfondi.it/notte.jpg");
aggiungiSfondo(0, 2,"http://sfondi.it/notte.jpg");
così, dalle 21 alle 2 verrà visualizzato lo sfondo "http://sfondi.it/notte.jpg".
Edited by Red eYe - 27/11/2008, 00:48
.