jQuery: cambiare un'immagine di sfondo in base alla stagione

jQuery: cambiare un'immagine di sfondo in base alla stagione

Cambiare un'immagine di sfondo in base alla stagione รจ qualcosa che io francamente reputo come un residuo del dilettantismo imperante negli anni '90 e che quindi non ritengo degno di un sito moderno. Ad ogni modo, i clienti potrebbero richiederlo. Ecco come fare con JavaScript e jQuery.

Definiamo una funzione di utility che restituisca il valore numerico del giorno corrente:


var getDayOfYear = function(dateObject) {

	var year = dateObject.getFullYear();
	var month = dateObject.getMonth();
	var day = dateObject.getDate();
	
	var d1 = new Date(year, 0, 1, 12, 0, 0); // 12:00 1 Gennaio
	var d2 = new Date(year, month, day, 12, 0, 0); // 12:00 data di input
	var diff = Math.round((d2-d1) / 864e5);
	
	return diff + 1;
};

Quindi calcoliamo la stagione in base a tale valore numerico raffrontato col valore complessivo dato dai 365 giorni dell'anno:


var currentDate = new Date();
var currentDateNum = getDayOfYear(currentDate);
var season = '';

if(currentDateNum < 79) {
	season = 'winter';
} else if(currentDateNum < 171) {
	season = 'spring';
} else if(currentDateNum < 265) {
	season = 'summer';
} else if(currentDateNum < 354) {
	season = 'autumn';
} else {
	season = 'winter';
}

$('#test').addClass(season);

Ad ogni classe CSS, ovviamente, va assegnata una diversa immagine di sfondo.

Torna su