Nei primi 2 articoli, ne ho descritto il funzionamento concentrandomi sull' analisi delle varie righe di codice. Il primo articolo trattava la parte statica cioè si occupa della visualizzazione dei display semplicemente senza effettuare il conteggio. Noi cioè aprivamo la pagina web e visualizzavamo il cronometro settato su 0:00:00.0
La seconda parte descriveva come avveniva il conteggio cambiando in modo dinamico, i link alle immagini dei digit del display.
In questa terza fornisco il codice in modo che chi ne avesse bisogno può semplicemente apportare le modifiche che gli servono ed utilizzalo.
Non so quale sia la precisione ma sembra andare abbastanza bene. Ho notato comunque che il browser arresta temporaneamente l' esecuzione degli script JS se non si sta visualizzando la pagina. Quindi ridurre la finestra ad icona per fare altre cose mentre il cronometro è in conteggio, significherebbe arrestarlo.
Ecco cosa fare:
1) Creare sul Desktop una cartella chiamata TIMER.
2) Creare al suo interno un file chiamandolo index.html e copiarvi dentro il seguente codice:
<html>
<head>
<title>Cronometro</title>
<meta charset="utf-8" />
<meta name="description" content="Cronometro JQuery" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="jqClock.css" />
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jqClock.js"></script>
<script type="text/javascript" src="myfunction.js"></script>
</head>
<body>
<div id="clock">L' applicazione necessita l' attivazione di Javascript</div>
<div id="chronometer">
<ul>
<li id="D5"><img class="digit" src ="digits/0.png" width="134" height="206" alt="" /></li>
<li><img class="dp2" src ="digits/2p.png" width="14" height="70" alt="" /></li>
<li id="D4"><img class="digit" src ="digits/0.png" width="134" height="206" alt="" /></li>
<li id="D3"><img class="digit" src ="digits/0.png" width="134" height="206" alt="" /></li>
<li><img class="dp2" src ="digits/2p.png" width="14" height="70" alt="" /></li>
<li id="D2"><img class="digit" src ="digits/0.png" width="134" height="206" alt="" /></li>
<li id="D1"><img class="digit" src ="digits/0.png" width="134" height="206" alt="" /></li>
<li><img class="dp1" src ="digits/1p.png" width="7" height="7" alt="" /></li>
<li id="D0"><img class="digit" src ="digits/mini/0.png" width="68" height="104" alt="" />
</li>
</ul>
</div>
<div id="start_time"> </div>
<div id="buttons">
<input type="button" value="Start" id="Start" />
<input type="button" value="Stop" id="Stop" />
<input type="button" value="Reset" id="Reset" />
</div>
<div id="msg">Non ridurre mai ad icona la finestra del browser durante il conteggio del cronometro.</div>
</body>
</html>
3) Creare nella cartella Timer un file chiamandolo jqClock.css e copiare al suo interno:
body{
background-image:url('digits/background.png');
background-repeat:repeat;
}
#clock{position:fixed; top: 0;}
.jqclock { float:left; text-align:center; padding: 10px; margin:10px; }
.clockdate { color: DarkRed; font-size: 2em; display: inline;}
.clocktime {
padding-left: 35px;
font-size: 2em;
color: DarkRed;
margin: 2px;
display:inline;
}
.dp2{padding-bottom: 50px;}
#chronometer{position: relative; margin-top:100px;}
#chronometer li
{
display: inline;
list-style-type: none;
padding-left: 0px;
}
#start_time{font-size: 2em; margin:20px;}
#buttons{float:right;}
#buttons input{margin-right: 30px;}
#msg{position:fixed; bottom: 0;}
4) Creare sempre nella cartella TIMER un file chiamandolo myfunction.js e copiarvi all' interno il seguente codice:
$(document).ready(function(){
//for chronometer
var reset_html = $("#chronometer").html();
var arr_chronometer={
tenths:0,
seconds:0,
minutes:0,
hours:0
};
function reset_arr_chronometer(){
for (index in arr_chronometer) {
arr_chronometer[index]=0;
}
}
var timer_id=null;
var isstarted=false;
function start(){
if(!isstarted){
// $("#debug").html("start")
isstarted=true;
var start_date = $(".clocktime").html();
$("#start_time").html("Start ore: "+ start_date);
timer_id=setInterval(function(){
increment_tenth();
}, 100);
}
}//close function start()
function stop(){
if(isstarted){
// $("#debug").html("stop")
isstarted = false;
clearInterval(timer_id);
}
}//close function stop()
function reset(){
stop();
$("#chronometer").html(reset_html);
$("#start_time").html(" ");
reset_arr_chronometer();
isstarted=false;
}
//////////////////////////////////////////////////
$("#clock").clock({
"langSet":"it"
});
$("#Start").click(function(){
start();
});
$("#Stop").click(function(){
stop();
});
$("#Reset").click(function(){
reset();
});
//timer functions
function increment_tenth(){
if(arr_chronometer['tenths']==9){
arr_chronometer['tenths']=0;
increment_second();
}
else arr_chronometer['tenths']++
view_tenths();
}
function increment_second(){
if(arr_chronometer['seconds']==59){
arr_chronometer['seconds']=0;
increment_minute();
}
else arr_chronometer['seconds']++;
view_seconds();
}
function increment_minute(){
if(arr_chronometer['minutes']==59){
arr_chronometer['minutes']=0;
increment_hour();
}
else arr_chronometer['minutes']++;
view_minutes();
}
function increment_hour(){
if(arr_chronometer['hour']< 9){
arr_chronometer['hour']++;
}
else stop(); //timer stop
view_hours();
}
var HDigit;
var LDigit;
function view_tenths(){
setDigit(arr_chronometer['tenths']);
$("#D0 img").attr("src", "digits/mini/"+LDigit + ".png");
}
function view_seconds(){
setDigit(arr_chronometer['seconds']);
$("#D1 img").attr("src", "digits/"+LDigit + ".png");
$("#D2 img").attr("src", "digits/"+HDigit + ".png");
}
function view_minutes(){
setDigit(arr_chronometer['minutes']);
$("#D3 img").attr("src", "digits/"+LDigit + ".png");
$("#D4 img").attr("src", "digits/"+HDigit + ".png");
}
function view_hours(){
setDigit(arr_chronometer['hours']);
$("#D5 img").attr("src", "digits/"+LDigit + ".png");
}
function setDigit(val){
if(val < 10){
HDigit = 0;
LDigit = val;
}else{
val=val+""; //convert in string format
HDigit =val.substring(0,1);
LDigit = val.substring(1,2);
}
}//close function setDigit(val)
}); //close $(document).ready
5) Scaricare da http://jquery.com/ la versione 1.7.2 minified e decomprimerla all' interno della cartella TIMER. Il file si chiamerà jquery-1.7.2.min.js
6) scaricare il file jqClock.js da: https//github.com/Lwangaman/jQuery-Clock-Plugin e aggiungerlo nella cartella TIMER.
7) A questo punto creare all' interno di TIMER una cartella chiamata digits e salvare al suo interno le seguenti immagini: (Per salvarle basta cliccare col tasto destro del mouse sull' immagine e scegliere Salva come...)
8) Creare all' interno di digits una nuova cartella chiamata mini. 9) Inserire al suo interno le icone da 0.png fino a 9.png e ridimensionarle del 50% usando un programma di grafica.
A questo punto per avviare l' applicazione basta aprire la cartella TIMER e fare doppio click su index.html.

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)