gpt4 book ai didi

javascript - 反向 jquery 倒数计时器

转载 作者:行者123 更新时间:2023-11-29 14:49:05 25 4
gpt4 key购买 nike

我有这个倒数计时器脚本,它显示到 X 天的剩余时间。现在 X 天已经过去,倒计时显示零值。我如何才能反向显示自 X 天以来耗时?

// 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())) / 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+'">'+
'<span class="position">'+
'<span class="digit static">0</span>'+
'</span>'+
'<span class="position">'+
'<span class="digit static">0</span>'+
'</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');
});
}

最佳答案

我认为如果您删除这些行,它应该会继续运行。这将显示负时间,因此您需要稍微修改它以显示已用时间而不是时间到,但在此处看不到该代码。

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

如果您希望它保持正数并开始计数,那么您可以更改此设置:

left = Math.floor((options.timestamp - (new Date())) / 1000);

为此:

left = Math.abs(Math.floor((options.timestamp - (new Date())) / 1000));

关于javascript - 反向 jquery 倒数计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28796979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com