倒计时 jquery countdown

来源:互联网 发布:mysql 进入数据库 编辑:程序博客网 时间:2024/06/07 01:56

1.jingjia.jsp中的内容

引入文件

<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300" />

<script type="text/javascript" src="resource/script/jquery-1.7.1.min.js"></script>

<script src="resource/script/assets/countdown/jquery.countdown.js"></script>

标签

 <label>距结束:</label>
 <p id="note"></p>

js代码

$(function(){


var note = $('#note'),
ts = new Date(2012, 0, 1),
newYear = true;


if((new Date()) > ts){
// The new year is here! Count towards something else.
// Notice the *1000 at the end - time must be in milliseconds
ts = endtimeemp;
newYear = false;
}
$('#countdown').countdown({
timestamp : ts,
callback : function(days, hours, minutes, seconds){
var message = "";

message +="<span id='time_d'>"+ days + "</span><em>天</em>" ;
message +="<span id='time_h'>"+ hours + "</span><em>时</em>" ;
message +="<span id='time_m'>"+ minutes + "</span><em>分</em>" ;
message +="<span id='time_s'>"+ seconds + "</span><em>秒</em>" + " <br />";

note.html(message);
}
});


});

2 jquery.countdown.js

/**
 * @name jQuery Countdown Plugin
 * @author Martin Angelov
 * @version 1.0
 * @url http://tutorialzine.com/2011/12/countdown-jquery/
 * @license MIT License
 */
(function($){
 
// Number of seconds in every time division
var days = 24*60*60,
hours = 60*60,
minutes = 60;
 
// Creating the plugin
$.fn.countdown = function(prop){

var options = $.extend({
callback : function(){},
timestamp : 0
},prop);

var left, d, h, m, s, positions;


// Initialize the plugin
init(this, options);

positions = this.find('.position');
(function tick(){
// Time left
left = Math.floor((options.timestamp - (new Date(ot))) / 1000);

if(left < 0){
left = 0;
}

// Number of days left
d = Math.floor(left / days);
updateDuo(0, 1, d);
left -= d*days;

// Number of hours left
h = Math.floor(left / hours);
updateDuo(2, 3, h);
left -= h*hours;

// Number of minutes left
m = Math.floor(left / minutes);
updateDuo(4, 5, m);
left -= m*minutes;

// Number of seconds left
s = left;
updateDuo(6, 7, s);

// Calling an optional user supplied callback
options.callback(d, h, m, s);

// Scheduling another call of this function in 1s
setTimeout(tick, 1000);
})();

// This function updates two digit positions at once
function updateDuo(minor,major,value){
switchDigit(positions.eq(minor),Math.floor(value/10)%10);
switchDigit(positions.eq(major),value%10);
}

return this;
};




function init(elem, options){
elem.addClass('countdownHolder');


// Creating the markup inside the container
$.each(['Days','Hours','Minutes','Seconds'],function(i){
$('<span class="count'+this+'">').html(
'<span class="position">\
<span class="digit static">0</span>\
</span>\
<span class="position">\
<span class="digit static">0</span>\
</span>'
).appendTo(elem);

if(this!="Seconds"){
elem.append('<span class="countDiv countDiv'+i+'"></span>');
}
});


}


// Creates an animated transition between the two numbers
function switchDigit(position,number){

var digit = position.find('.digit')

if(digit.is(':animated')){
return false;
}

if(position.data('digit') == number){
// We are already showing this number
return false;
}

position.data('digit', number);

var replacement = $('<span>',{
'class':'digit',
css:{
top:'-2.1em',
opacity:0
},
html:number
});

// The .static class is added when the animation
// completes. This makes it run smoother.

digit
.before(replacement)
.removeClass('static')
.animate({top:'2.5em',opacity:0},'fast',function(){
digit.remove();
})


replacement
.delay(100)
.animate({top:0,opacity:1},'fast',function(){
replacement.addClass('static');
});
}
})(jQuery);