In questo articolo vi spiegherò come creare un orologio analogico in Javascript e, a differenza dell’orologio analogico che trovate in questo articolo, questo utilizza il codice css webkit per ruotare le lancette.
Il seguente codice è codice CSS e serve per definire lo stile della pagina web.
<style type="text/css"> .all { background-color: transparent; background-repeat: no-repeat; position:absolute; width:256px; height:256px; } </style>
Gli attributi z-index servono per definire la sovrapposizione dei vari elementi html. In questo caso il valore 0 è attribuito allo sfondo dell’orologio mentre i valori maggiori di 0 sono attribuiti alle lancette che stanno sopra l’immagine di sfondo, inoltre, la lancetta dei minuti si sovrappone a sua volta a quella delle ore, la lancetta dei secondi invece a quella dei minuti e, di conseguenza anche a quella delle ore, poichè ha come valore z-index maggiore delle altre lancette ovvero 3.
<div style="position: absolute;"> <div style="background-image: url('./Clock.png'); z-index:0;"></div> <div style="background-image: url('./center.png'); z-index:4;"></div> <div id="ore" style="background-image: url('./Ore.png'); z-index:1;"></div> <div id="minuti" style="background-image: url('./Minuti.png'); z-index:2;"></div> <div id="secondi"style="background-image: url('./Secondi.png'); z-index:3;"></div> </div>
Il seguente codice Javascript definisce la funzione change_time() che aggiorna la posizione delle lancette. Praticamente modifica l’inclinazione dell’immagine modificando il valore -webkit-transform (un attributo CSS), purtroppo l’attributo CSS per definire la rotazione dell’immagine è diverso da browser a browser.
<script type="text/javascript"> function change_time() { var d = new Date(); document.getElementById('secondi').style.MozTransform='rotate('+d.getSeconds()*6+'deg)'; // Firefox document.getElementById('secondi').style['-webkit-transform']='rotate('+d.getSeconds()*6+'deg)'; // Safari & Chrome document.getElementById('secondi').style['-o-transform']='rotate('+d.getSeconds()*6+'deg)'; // Opera document.getElementById('secondi').style['-ms-transform']='rotate('+d.getSeconds()*6+'deg)'; // Internet Explorer 9 document.getElementById('minuti').style.MozTransform='rotate('+(d.getMinutes()*6)+'deg)'; document.getElementById('minuti').style['-webkit-transform']='rotate('+d.getMinutes()*6+'deg)'; document.getElementById('minuti').style['-o-transform']='rotate('+d.getMinutes()*6+'deg)'; document.getElementById('minuti').style['-ms-transform']='rotate('+d.getMinutes()*6+'deg)'; document.getElementById('ore').style.MozTransform='rotate('+d.getHours()*30+'deg)'; document.getElementById('ore').style['-webkit-transform']='rotate('+d.getHours()*30+'deg)'; document.getElementById('ore').style['-o-transform']='rotate('+d.getHours()*30+'deg)'; document.getElementById('ore').style['-ms-transform']='rotate('+d.getHours()*30+'deg)'; } setInterval("change_time()", 500); </script>
La funzione setInterval richiama ogni 500 millisecondi la funzione change_time() in modo tale da aggiornare ogni mezzo secondo la posizione dele lancette.
Download Orologio
Ti è piaciuto questo articolo? Allora ti piacerà anche:
– Come creare un cronometro in Javascript
– Come realizzare uno slider di immagini con dissolvenza in Javascript
– Creare una calcolatrice in Javascript