Time jQuery plug-in

Visualizzare un orologio live su una pagina web.

Pubblicato da ,
Ultima modifica

Utilizzo jQuery per creare un plug-in che permette di visualizzare su schermo un orologio live.

Creo un file js che chiamo jquery.time.js con il seguente codice:

Codice Javascript

 (function($){
  
 $.fn.time = function(options) {
    
	var dataintera = new Date();
	var HH = dataintera.getHours();
	var MM = dataintera.getMinutes();
	var SS = dataintera.getSeconds(); 
	
	var defaults = {font_size:22 , color:'red'};
	var options = $.extend(defaults, options);             
           
 
    return this.each(function() { 
          
   var str = '<span class="hh"></span>&nbsp;:&nbsp;<span class="mm"></span>&nbsp;:&nbsp;<span class="ss"></span>';
    
	$(this).html(str)
	       .css({'font-size': options.font_size+'px', 'color': options.color}); 
           
           if(SS<=9){
           $(' span.ss').html('0'+SS); 
           }
           else{
            $(' span.ss').html(SS);  
           };
           
           if(MM<=9){
            $(' span.mm').html('0'+MM);
            
           }else{
            $(' span.mm').html(MM);
            };
           
           if(HH<=9){
            $(' span.hh').html('0'+HH);
            
           }else{
            $(' span.hh').html(HH);
            };
            
           
    setInterval(function(){
	   var data = new Date();
	   var h = dataintera.getHours();
	   var m = dataintera.getMinutes();
	   var s = dataintera.getSeconds();
           
           if(s<=9){$('span.ss').html('0'+s);         
            } else{$('span.ss').html(s);  
           };
           
          if(m<=9){$('span.mm').html('0'+m);
            }else{$('span.mm').html(m);
            };
           
           if(h<=9){$('span.hh').html('0'+h);
            }else{$('span.hh').html(h);
            };
           
           },1000);      
            
    });   
         
 };  
})(jQuery);

la variabile dataintera è la data e l'ora attuale che ricavo utilizzando new Date(), da questa data ricavo l'ora (HH), i minuti (MM), i secondi (SS), utilizzando rispettivamente i metodi getHours()getMinutes()getSeconds(), imposto un valore di default del "font-size" e "color" dell'orologio definendo la variabile defaults, il font-size e il color possono essere definiti a proprio piacere, pertanto 

$.extend(defaults, options); 

sovrascrive i valori di default con quelli passati tramite options.

La variabile str contiene il codice html, tre tag <span> per l'ora, i minuti e i secondi attuali, rispettivamente con classe hhmmss.

$(this) é l'oggetto del DOM nel quale viene inserito il codice html della variabile str, a cui viene applicato anche la formattazione con il metodo css(), il font-size e il color.

Il metodo setInterval() cambia il valore dell'ora, dei minuti e dei secondi ogni secondo, il valore è espresso in millisecondi (1000).

Il codice html è il seguente:

Codice HTML

 <html>
<head></head>
<title>JQuery Time Plug-in</title>
<body>
<div class="watch"></div>
<script src="js/jquery.js" type="text/javascript"></script>     
<script src="js/jquery.time.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.watch').time({font_size:50 , color:'blue'});
});
</script>
</body>
</html>

ho definito un contenitore div con classe .watch, jquery.js è la versione corrente della libreria.

 

Demo Scarica