shp808 发表于 2013-1-29 08:54:34

一个页面的倒计时代码

js:$(function(){   //====倒计时====         var timePush = {},timeId,STATIC = {'0':'h','1':'m','2':'s'},items = $(".items-prod li");         $(".time-left", items).each(function(index, callback) {               timePush["T" + index] = returnTime.call(this);         });             timeId = setTimeout(function() {               if (isEmptyObj.call(timePush)) {                   clearTimeout(timeId);                   return false;               }               //提前预定 处理               timeId = setTimeout(arguments.callee, 1000);               //处理               $.each(timePush, function(index, callback) {                   //递归获取更新后的时间                   var timeItem = getTime(this, 2);                   if (timeItem.join("") - 0 == 0) {                     deleteTime(index);                   } else {                     updateTime(index, timeItem);                   }               });         }, 1);             function getTime(arr, type, pre) {               if (type < 0)return 0;               var num = _numTmp = ~~arr,_type = STATIC["" + type];               switch (_type) {                   case 'h':                     --num < 0 ? pre = 0 : num;                     break;                   case 'm':                     num = fixed2Str(--num < 0 ? getTime(arr, type - 1, 59) : num);                     pre = ~~arr || _numTmp ? pre : 0;                     arr = num;                     break;                   case 's':                     arr = fixed2Str(--num < 0 ? getTime(arr, type - 1, 59) : num);                     break;                   default:                     break;               }               if (pre != void 0)return pre;               return arr;         }             function updateTime(key, arr) {               var index = key.replace(/[^\d]/g, ''),str = arr.join("").split("");               $(".time-left", items.eq(index)).find("span i").each(function(index) {                   this.innerHTML = str;               })         }             function deleteTime(key) {               var index = key.replace(/[^\d]/g, '');               delete timePush;               $(".reply-btn", items.eq(index)).attr("class", "submit-btn disabled-big").html('<span><em></em>已经结束</span>');               $(".time-left", items.eq(index)).find("span i").html(0);         }             function isEmptyObj() {               for (var i in this)return false;               return true;         }             function fixed2Str(number) {               if (number < 10)number = "0" + number;               return "" + number;         }             function returnTime() {               var time = [];               $("span", this).each(function() {                   time.push($(this).text());               });               return time;         }   }); html:
<div class="time-leave">                      <span class="fl">剩余时间:</span>                        <div class="time-left fl"><p>                        <span><i>0</i><i>0</i></span><span><i>3</i><i>6</i></span><span><i>3</i><i>9</i></span></p>                      </div>                  </div> 
页: [1]
查看完整版本: 一个页面的倒计时代码