当前位置: 代码迷 >> Web前端 >> 记时的实现
  详细解决方案

记时的实现

热度:264   发布时间:2012-10-25 10:58:57.0
倒计时的实现

页面如下:

?

<script src="prototype.js" type="text/javascript"></script>
<script src="counter.js" type="text/javascript"></script>

<span style="font-size:32px;color:#82b512;">
  <span id="day0">0</span><span id="day1">0</span> : 
  <span id="hour0">0</span><span id="hour1">0</span> : 
  <span id="min0">0</span><span id="min1">0</span> : 
  <span id="sec0">0</span><span id="sec1">0</span>
</span>

<script type="text/javascript">
  new Countdown({
    toDate:    new Date(Date.parse("10/31/2010 17:00:00 UTC")),
    dayElements:  [$("day0"),   $("day1")],
    hourElements:  [$("hour0"),   $("hour1")],
    minuteElements:  [$("min0"),   $("min1")],
    secondElements:  [$("sec0"),   $("sec1")]
  });
</script>

?

counter.js内容如下:

?

function Countdown(config) {
  this.toDate 		= config.toDate;
  this.dayElements	= config.dayElements;
  this.hourElements	= config.hourElements;
  this.minuteElements	= config.minuteElements;
  this.secondElements	= config.secondElements;
  this.timer		= undefined;
	
  this.update = function() {
    var elapsed = (this.toDate.getTime() 
      - (new Date()).getTime())/1000;
    this.setDisplay(
    this.age(elapsed, Countdown.DAY),
    this.age(elapsed, Countdown.HOUR),
    this.age(elapsed, Countdown.MINUTE),
    this.age(elapsed, Countdown.SECOND)
  );
  };
		
  this.age = function(seconds, t) {
    if (seconds<=0) { return [0, 0]; }
    var s = ((Math.floor(seconds/t.unit))%t.length).toString();
    return (s.length < 2) 
      ? ["0", s] 
    : [s.substring(0, 1), s.substring(1, 2)];
  };
	
  this.setDisplay = function(day, hour, minute, second) {
    this.display(day, this.dayElements);
    this.display(hour, this.hourElements);
    this.display(minute, this.minuteElements);
    this.display(second, this.secondElements);
  };
		
  this.display = function(num, els) {
    els[0].innerHTML = num[0];
    els[1].innerHTML = num[1];
    els[0].className = "num_"+num[0];
    els[1].className = "num_"+num[1];
  };
		
  var that = this;
  this.timer = setInterval(function(){that.update()}, 250);
}
	
Countdown.DAY 		= {unit: 86400, length: 100000};
Countdown.HOUR 		= {unit: 3600, length: 24};
Countdown.MINUTE 	= {unit: 60, length: 60};
Countdown.SECOND 	= {unit: 1, length: 60};
  相关解决方案