Utilisateur:Dr Brains/FlippingClocks.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./*
// Modèle :
<div class="flippingclock flippingclockbig"></div>
<div class="flippingclock"></div>
<div class="flippingclock flippingclocksmall"></div>
<p id="controlElement"></p>
* [[Utilisateur:Dr Brains/FlippingClocks.js]]
* [[Utilisateur:Dr Brains/FlippingClocks.css]]
*/
//<source lang=javascript>
if(typeof(FlippingClocks)==="undefined"){ // DEBUT IF
mw.loader.load('//fr.wikipedia.org/w/index.php?title=Utilisateur:Dr Brains/FlippingClocks.css&action=raw&ctype=text/css', 'text/css', false);
var FlippingClocks = {}
FlippingClocks.initialValues = [];
FlippingClocks.init = function(){
var clocks = $.makeArray( $(document).find('div.flippingclock') );
for(var a=0,l=clocks.length;a<l;a++){
var thisclock = clocks[a];
thisclock.id = "flippingclock_"+a;
while(thisclock.firstChild){ thisclock.removeChild(thisclock.firstChild);}
var tenhour = document.createElement('div');
tenhour.className = "flippingclockelement tenhours";
var hour = document.createElement('div');
hour.className = "flippingclockelement hours";
var tenminut = document.createElement('div');
tenminut.className = "flippingclockelement tenminuts";
var minut = document.createElement('div');
minut.className = "flippingclockelement minuts";
var tensecond = document.createElement('div');
tensecond.className = "flippingclockelement tenseconds";
var second = document.createElement('div');
second.className = "flippingclockelement seconds";
thisclock.appendChild(tenhour);
thisclock.appendChild(hour);
thisclock.appendChild(document.createTextNode(' '));
thisclock.appendChild(tenminut);
thisclock.appendChild(minut);
thisclock.appendChild(document.createTextNode(' '));
thisclock.appendChild(tensecond);
thisclock.appendChild(second);
FlippingClocks.initialValues[a] = {TenHours:0,Hours:0,TenMinutes:0,Minutes:0,TenSeconds:0,Seconds:0};
FlippingClocks.setClock(a);
}
}
FlippingClocks.setClock = function(index){
var thisclock = document.getElementById("flippingclock_"+index);
if(!thisclock) return;
var multiplicator = 1;
if($(thisclock).hasClass( "flippingclockbig" )) multiplicator = 2;
if($(thisclock).hasClass( "flippingclocksmall" )) multiplicator = 0.5;
var Now = new Date();
var Hours = Now.getHours();
var Minutes = Now.getMinutes();
var Seconds = Now.getSeconds();
var TenHours = Math.floor(Hours/10);
Hours = Hours - (TenHours * 10);
var TenMinutes = Math.floor(Minutes/10);
Minutes = Minutes - (TenMinutes * 10);
var TenSeconds = Math.floor(Seconds/10);
Seconds = Seconds - (TenSeconds * 10);
var tenhour = $.makeArray( $(thisclock).find("div.tenhours"))[0];
var hour = $.makeArray( $(thisclock).find("div.hours"))[0];
var tenminut = $.makeArray( $(thisclock).find("div.tenminuts"))[0];
var minut = $.makeArray( $(thisclock).find("div.minuts"))[0];
var tensecond = $.makeArray( $(thisclock).find("div.tenseconds"))[0];
var second = $.makeArray( $(thisclock).find("div.seconds"))[0];
var initaialvalues = FlippingClocks.initialValues[index];
if(TenHours!= initaialvalues["TenHours"]){
FlippingClocks.setClockElement(tenhour, TenHours, multiplicator);
FlippingClocks.initialValues[index]["TenHours"] = TenHours;
}
if(Hours!= initaialvalues["Hours"]){
FlippingClocks.setClockElement(hour, Hours, multiplicator);
FlippingClocks.initialValues[index]["Hours"] = Hours;
}
if(TenMinutes!= initaialvalues["TenMinutes"]){
FlippingClocks.setClockElement(tenminut, TenMinutes, multiplicator);
FlippingClocks.initialValues[index]["TenMinutes"] = TenMinutes;
}
if(Minutes!= initaialvalues["Minutes"]){
FlippingClocks.setClockElement(minut, Minutes, multiplicator);
FlippingClocks.initialValues[index]["Minutes"] = Minutes;
}
if(TenSeconds!= initaialvalues["TenSeconds"]){
FlippingClocks.setClockElement(tensecond, TenSeconds, multiplicator);
FlippingClocks.initialValues[index]["TenSeconds"] = TenSeconds;
}
if(Seconds!= initaialvalues["Seconds"]){
FlippingClocks.setClockElement(second, Seconds, multiplicator);
FlippingClocks.initialValues[index]["Seconds"] = Seconds;
}
var controlElement = document.getElementById("controlElement");
if(controlElement) controlElement.innerHTML = "time = " + TenHours + Hours +":" + TenMinutes +Minutes +":"+ TenSeconds + Seconds;
setTimeout(function(){ FlippingClocks.setClock(index);}, 1000 );
}
FlippingClocks.setClockElement = function(el, val, multiplicator, count){
if(!el) return;
if(typeof(count)!="number") count = 14;
if(count<0) return;
var posX = Math.round((250 - Math.round(25 * (val-1))) * multiplicator);
var posY = Math.round(32 * multiplicator * (count+1));
el.style.backgroundPosition = posX+"px "+posY+"px";
setTimeout(function(){ FlippingClocks.setClockElement(el, val, multiplicator, (count-1));}, 30 );
}
$(FlippingClocks.init);
} // FIN IF
//</source>