所以我创建了这个倒计时器,
<script type="text/javascript">
var interval;
var minutes = 12;
var seconds = 32;
window.onload = function() {
countdown('countdown');
}
function countdown(element) {
interval = setInterval(function() {
var el = document.getElementById(element);
if(seconds == 0) {
if(minutes == 0) {
minutes=7;
seconds=47;
} else {
minutes--;
seconds = 60;
}
}
if(minutes > 0) {
var minute_text = minutes + (minutes > 1 ? ':' : ':');
} else {
var minute_text = '';
}
var second_text = seconds > 1 ?'':'';
el.innerHTML = minute_text + ''+seconds + ' '+second_text + ' remaining';
seconds--;
}, 1000);
}
</script>
结果完美无缺,但当计时器达到10以下的数字时(12:03,12:05等),它会显示前面没有“0”的秒数。 (12:3而不是12:03)
我试着解决这个问题,但它让我无处可去。有可能以某种方式编辑我的脚本来修复这个错误吗?
答案 0 :(得分:1)
数字前面没有零。
您必须手动添加。
if(seconds < 10) {
second_text = "0" + seconds;
}
答案 1 :(得分:1)
second_text = (seconds > 9) ? (seconds) : ('0' + seconds);
答案 2 :(得分:1)
我刚刚清理了你的代码:
var interval,
minutes = 12,
seconds = 32;
window.onload = function() {
countdown('countdown');
}
function countdown(element) {
var el = document.getElementById(element),
minutes_text, second_text;
interval = setInterval(function() {
if(seconds == 0) {
if(minutes == 0) {
minutes=7;
seconds=47;
}
else {
minutes--;
seconds = 60;
}
}
minutes_text = minutes;
second_text = (seconds < 10 ? "0" : "") + seconds;
el.innerHTML = minutes_text + ':' + second_text + ' remaining';
seconds--;
}, 1000);
}
答案 3 :(得分:0)
尝试添加一个功能来填充显示的值
function padvalue(i) {
if (i<10) {
i="0" + String(i);
}
return i;
}
在此处致电
el.innerHTML = minute_text + '' + padvalue(seconds) + ' ' + second_text + ' remaining';
答案 4 :(得分:0)
使用此代码段将数字转换为字符串:
var secondStr = seconds + "";
while (secondStr.length < 2) {
secondStr = "0" + secondStr;
}
在几分钟和几小时内做同样的事情,然后打印字符串。
(你知道间隔1000意味着间隔将是1000或更多毫秒吗?虽然间隔时间很长,但你不可能错过一个完整的节拍。这意味着计数器将接近实时秒但不准确,会随着计算机的不同而变化。)