成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? jQuery實現商品活動倒計時
全站頭部文字 我要出現在這里
jQuery實現商品活動倒計時 616 2024-03-23   

倒計時一般是用來表示未來某一時刻距現在時刻還剩多少時間。倒計時在WEB上應用非常廣泛,如考試系統倒計時,團購網站中的優惠活動倒計時等等。今天,我們來使用jQuery實現一個簡單的倒計時功能。

查看圖片

本文以團購網站的倒計時為背景,我們知道,網站會給每個優惠活動(商品)定一個結束時間,也就是到期時間,但系統時間到達了結束時間,就意味著活動結束。因此,我們在HTML中就要定義活動的結束時間。
HTML

<ul class="prolist"> 
   <li><img src="http://www.gimoo.net/t/1904/images/p1.jpg" />簡約時尚皮帶男士手表一款69元<p class="endtime showtime" 
   value="1354365003"></p></li> 
   <li><img src="http://www.gimoo.net/t/1904/images/p2.jpg" />高強度無毒樹脂材料榨汁器24元<p class="endtime showtime" 
   value="1350748800"></p></li> 
   <li><img src="http://www.gimoo.net/t/1904/images/p3.jpg" />茶香番茄/烏梅/楊梅0.48元<p class="endtime showtime" 
   value="1346487780"></p></li> 
   <li><img src="http://www.gimoo.net/t/1904/images/p4.jpg" />沙灘鞋男士戶外涼鞋69元<p class="endtime showtime" 
   value="1367380800"></p></li> 
</ul> 

上述html代碼中,我們建立了一個列表,用于展示活動名稱、圖片和倒計時,關鍵的是我們在每個活動定義了結束時間:.endtime屬性value的值,這個值是一串數字,表示自1970年1月1日以來的秒數,由后臺(PHP)生成。比如結束時間2013-05-01 12:00可以通過PHP轉換為1367380800秒,轉換后的秒數可以用來接下來的jQuery計算倒計時。
CSS
我們需要給頁面中的列表實際一個稍微好看點的外觀。

.endtime{font-size:20px; font-family:"Microsoft Yahei"; color:#000} 
.prolist{margin:10px auto} 
.prolist li{float:left; width:320px; height:240px; margin:10px; font-size:14px; 
position:relative} 
.prolist li img{width:320px; height:198px;} 
.showtime{position:absolute; top:174px; height:24px; line-height:24px; 
background:#333; color:#fff; opacity:.6; display:none} 

保存,預覽頁面效果,可以看到一個排列整齊的活動列表。
jQuery

var serverTime = * 1000; //服務器時間,毫秒數 
$(function(){ 
  var dateTime = new Date(); 
  var difference = dateTime.getTime() - serverTime; //客戶端與服務器時間偏移量 
   
  setInterval(function(){ 
   $(".endtime").each(function(){ 
    var obj = $(this); 
    var endTime = new Date(parseInt(obj.attr('value')) * 1000); 
    var nowTime = new Date(); 
    var nMS=endTime.getTime() - nowTime.getTime() + difference; 
    var myD=Math.floor(nMS/(1000 * 60 * 60 * 24)); //天 
    var myH=Math.floor(nMS/(1000*60*60)) % 24; //小時 
    var myM=Math.floor(nMS/(1000*60)) % 60; //分鐘 
    var myS=Math.floor(nMS/1000) % 60; //秒 
    var myMS=Math.floor(nMS/100) % 10; //拆分秒 
    if(myD>= 0){ 
      var str = myD+"天"+myH+"小時"+myM+"分"+myS+"."+myMS+"秒"; 
    }else{ 
      var str = "已結束!";  
    } 
    obj.html(str); 
   }); 
  }, 100); //每個0.1秒執行一次 
}); 

我們首先獲取服務器時間,我們要將倒計時與服務器時間保持一致,這樣一來每個客戶端看到的倒計時是一樣的,我們通過計算客戶端與服務器的時間偏移量,來避免了因客戶機器時間與服務器時間不一致而引起的倒計時不同步的麻煩。當然這個服務器時間需要使用服務端語言來獲取,本文使用了PHP的time()函數獲取的秒數,記得要乘以1000轉換成毫秒數。
我們通過setInterval建立一個定時器,并且每個100毫秒執行一次setInterval里面的代碼。
然后在定時器里,我們使用jQuery的each()方法,遍歷頁面中的列表,計算天、小時、分、秒。
因為javascript的getTime()函數獲取的是毫秒數,所以計算過程中都要/1000,
我們并不想在一個頁面將列表中所有的倒計時都顯示出來,而需要用戶將鼠標滑向列表中的圖片才顯示對應的倒計時,因此我們還需要加入以下輔助代碼:

$(function(){ 
  $(".prolist li img").each(function(){ 
    var img = $(this); 
    img.hover(function(){ 
      img.next().show(); 
    },function(){ 
      img.next().hide(); 
    }); 
  }); 
}); 

最終效果圖:

查看圖片

以上就是關于倒計時的全部內容,希望對大家的學習有所幫助。



主站蜘蛛池模板: 陕西卫视节目表| 安泽豪个人资料| cctv16节目单| 刑事侦缉档案2剧情介绍| 《电业安全工作规程》电力线路| 《求知报》答案| 夜生活女王之霞姐| 电影《年龄差》| 流浪地球2演员表| 美丽人生在线完整版免费观看| 斋天仪规全文| 张柏芝演的电视剧| 沈月个人简历资料| 救急战队| 2018年党课主题及内容| 女同恋性吃奶舌吻完整版| elles club| 特殊的按摩| 奶奶的星星| av电影网| 奇怪的夜晚电影| 汪汪队完整版全集免费 | 试看60秒做受小视频| 金鸳鸯| 孕期检查项目一览表| 1988年英国的白蛇传说| 皇家趣学院第一季免费观看| 孽子 电影| 燃烧的岁月| nhk| 黑衣人| 想想办法吧爸爸| 花守由美里| 冥界警局| 隐情| 《风流艳妇》| 晋剧下河东全本| 苏晓电视剧叫什么名字的| 老友记 第一季 1994 詹妮弗·安妮斯顿 | 赵大鹏简介| 古今大战秦俑情 电影|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103