首頁  >  文章  >  web前端  >  基於jQuery和CSS3製作數位時鐘附源碼下載(jquery篇)_jquery

基於jQuery和CSS3製作數位時鐘附源碼下載(jquery篇)_jquery

WBOY
WBOY原創
2016-05-16 15:30:151415瀏覽

廢話不多說了,先給大家展示下效果圖,有興趣的朋友繼續往下看 哦

查看示範       原始碼下載

HTML

和上一篇文章:用jQuery和CSS3製作數位時鐘(CSS3篇)一樣的HTML結構,只是多了個>date用來展示日期和星期的。

<div id="clock" class="light"> 
 <div class="display"> 
  <div class="date"></div> 
  <div class="digits"></div> 
 </div> 
</div> 

jQuery

CSS程式碼請參考上一篇文章,本文不再囉嗦,直接看jQuery程式碼。

首先我們定義參數,定義用來呼叫數字的class名稱數組,定義中文星期名稱,定義時分秒的位置。

$(function(){ 
 var clock = $('#clock'); 
 //定义数字数组0-9 
 var digit_to_name = ['zero','one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; 
 //定义星期 
 var weekday = ['周日','周一','周二','周三','周四','周五','周六']; 
 var digits = {}; 
 //定义时分秒位置 
 var positions = [ 
  'h1', 'h2', ':', 'm1', 'm2', ':', 's1', 's2' 
 ]; 
}); 

然後建構數位時鐘的時分秒。在上一篇文章中我們是直接在html中放置了數位時鐘的html結構,而現在我們使用jQuery來處理時鐘的展示,透過append()方法來建構數位時鐘。

var digit_holder = clock.find('.digits'); 
 $.each(positions, function(){ 
  if(this == ':'){ 
   digit_holder.append('<div class="dots">'); 
  } 
  else{ 
   var pos = $('<div>'); 
   for(var i=1; i<8; i++){ 
    pos.append('<span class="d' + i + '">'); 
   } 
   digits[this] = pos; 
   digit_holder.append(pos); 
  } 
 }); 

最後,我們要讓時鐘跑起來。每秒鐘呼叫一次update_time()函數,在update_time()中,我們先用moment.js來格式化時間,關於moment.js的介紹請參考本站文章:使用moment.js輕鬆管理日期和時間。再根據目前時分秒,分別設定時分秒數字的class屬性,即顯示目前時分秒數字。接著繼續使用moment.js來格式化日期和星期,最後完成了會走動的數字時鐘,請看下面程式碼:

$(function(){ 
 ... 
 (function update_time(){ 
  //调用moment.js来格式化时间 
  var now = moment().format("HHmmss"); 
  digits.h1.attr('class', digit_to_name[now[0]]); 
  digits.h2.attr('class', digit_to_name[now[1]]); 
  digits.m1.attr('class', digit_to_name[now[2]]); 
  digits.m2.attr('class', digit_to_name[now[3]]); 
  digits.s1.attr('class', digit_to_name[now[4]]); 
  digits.s2.attr('class', digit_to_name[now[5]]); 
  var date = moment().format("YYYY年MM月DD日"); 
  var week = weekday[moment().format('d')]; 
  $(".date").html(date + ' ' + week); 
  // 每秒钟运行一次 
  setTimeout(update_time, 1000); 
 })(); 
}); 
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn