我正在尝试将此默认秒计时器更改为Seconds倒计时计时器,但它无法正常工作
这是我正在尝试编辑的脚本
https://codepen.io/martingrand/pen/pqxtc
这是我制作的剧本
https://codepen.io/anon/pen/mmXbZR
有谁能告诉我我做错了什么?
我的jquery
var sec = 155;
calcValues();
var intvel = setInterval(calcValues, 1000);
function calcValues() {
$('.counter .to')
.addClass('hide')
.removeClass('to')
.addClass('from')
.removeClass('hide')
.addClass('n')
.find('span:not(.shadow)').each(function (i, el) {
$(el).text(getSec(true));
});
$('.counter .from:not(.n)')
.addClass('hide')
.addClass('to')
.removeClass('from')
.removeClass('hide')
.find('span:not(.shadow)').each(function (i, el) {
$(el).text(getSec(false));
});
$('.counter .n').removeClass('n');
}
function getSec(next) {
var d = new Date();
if (next) {
sec--;
if (sec == 0) {
clearInterval(intvel);
}
} else if(sec == 60) {
sec = 0;
}
return (sec == 10 ? '0' + sec : sec);
}
答案 0 :(得分:0)
这里的逻辑是错误的
return (sec == 10 ? '0' + sec : sec);
你是说秒数等于10,而不是加零。它应该小于10。
return (sec < 10 ? '0' + sec : sec);
现在针对这个问题,似乎两次调用你的getSeconds是你的问题。所以不要再调用两次,而是一次。
function calcValues() {
var secs = getSec(true); //store it
$('.counter .to')
.addClass('hide')
.removeClass('to')
.addClass('from')
.removeClass('hide')
.addClass('n')
.find('span:not(.shadow)').each(function (i, el) {
$(el).text(secs); //use it
});
$('.counter .from:not(.n)')
.addClass('hide')
.addClass('to')
.removeClass('from')
.removeClass('hide')
.find('span:not(.shadow)').each(function (i, el) {
$(el).text(secs); //use it
});
$('.counter .n').removeClass('n');
}