如何在倒计时javascript中显示毫秒
我有一个javascript代码,显示5分钟的倒计时 这是密码如何在倒计时javascript中显示毫秒,javascript,jquery,Javascript,Jquery,我有一个javascript代码,显示5分钟的倒计时 这是密码 var mins var secs; function cd() { mins = 1 * m("05"); // change minutes here secs = 0 + s(":00"); // change seconds here (always add an additional second to your total) redo(); } function m(obj) { fo
var mins
var secs;
function cd() {
mins = 1 * m("05"); // change minutes here
secs = 0 + s(":00"); // change seconds here (always add an additional second to your total)
redo();
}
function m(obj) {
for(var i = 0; i < obj.length; i++) {
if(obj.substring(i, i + 1) == ":")
break;
}
return(obj.substring(0, i));
}
function s(obj) {
for(var i = 0; i < obj.length; i++) {
if(obj.substring(i, i + 1) == ":")
break;
}
return(obj.substring(i + 1, obj.length));
}
function dis(mins,secs) {
var disp;
if(mins <= 9) {
disp = " 0";
} else {
disp = " ";
}
disp += mins + ":";
if(secs <= 9) {
disp += "0" + secs;
} else {
disp += secs;
}
return(disp);
}
function redo() {
secs--;
if(secs == -1) {
secs = 59;
mins--;
}
var timerStr = dis(mins,secs);
$("#countDownTimer").text(timerStr); // setup additional displays here.
if((mins == 0) && (secs == 0)) {
} else {
cd = setTimeout("redo()",1);
}
}
function init() {
cd();
}
window.onload = init;
var分钟
var-secs;
函数cd(){
分钟=1*m(“05”);//在此处更改分钟
secs=0+s(“:00”);//在此处更改秒数(始终在总数中再增加一秒)
重做();
}
功能m(obj){
对于(变量i=0;i 如果(分钟使用其中一种,例如or,如何
经进一步检查:
您正在使用参数1
调用超时,这意味着每个计时器“事件”的时间为1毫秒,但您在redo()函数中将该毫秒事件视为一整秒
redo()应该是:
function redo() {
s -= 0.001; // subtract 1 millisecond
if (s < 0) {
secs = 59.999;
mins--;
}
}
函数重做(){
s-=0.001;//减去1毫秒
如果(s<0){
secs=59.999;
分钟--;
}
}
等等。但是,考虑到每毫秒运行一次此代码将给浏览器带来相当大的负载,并且不会以精确的毫秒精度运行。您应该做的是跟踪时间-开始倒计时时,使用日期()记录当前系统时间对象,具有毫秒精度
以比毫秒更长的间隔调用redo()(例如,每200ms/0.2秒),然后从计时器的开始时间中减去该点的系统时间。我重新编写了代码,将毫秒包括在内。还要确保setTimer设置正确
var mins
var secs;
var ms;
function cd() {
mins = 1 * m("05"); // change minutes here
secs = 0 + s(":00"); // change seconds here (always add an additional second to your total)
ms = 0 + ms(":00");//change millisecons here
redo();
}
function m(obj) {
for(var i = 0; i < obj.length; i++) {
if(obj.substring(i, i + 1) == ":")
break;
}
return(obj.substring(0, i));
}
function s(obj) {
for(var i = 0; i < obj.length; i++) {
if(obj.substring(i, i + 1) == ":")
break;
}
return(obj.substring(i + 1, obj.length));
}
function ms(obj) {
for(var i = 0; i < obj.length; i++) {
if(obj.substring(i, i + 1) == ":")
break;
}
return(obj.substring(i + 1, obj.length));
}
function dis(mins,secs,ms) {
var disp;
if(mins <= 9) {
disp = " 0";
} else {
disp = " ";
}
disp += mins + ":";
if(secs <= 9) {
disp += "0" + secs;
} else {
disp += secs + ":";
}
if(ms <= 9) {
disp += "0" + ms;
} else {
disp += ms;
}
return(disp);
}
function redo() {
ms--;
if(ms == -1) {
ms = 99;
secs--;
}
if(secs == -1) {
secs = 59;
mins--;
}
var timerStr = dis(mins,secs,ms);
document.getElementById('countdown_fld').innerText=timerStr; // setup additional displays here.
if((mins == 0) && (secs == 0) && (ms == 0)) {
} else {
cd = setTimeout("redo()",10); //make sure to set the timer right
}
}
function init() {
cd();
}
var分钟
var-secs;
var-ms;
函数cd(){
分钟=1*m(“05”);//在此处更改分钟
secs=0+s(“:00”);//在此处更改秒数(始终在总数中再增加一秒)
ms=0+ms(“:00”);//此处更改毫秒
重做();
}
功能m(obj){
对于(变量i=0;i if(mins,但是否有显示毫秒的选项?请参见我的编辑。答案通常是“否”,但根据我链接的第一个答案,这可能是一件好事。我也需要显示毫秒。代码中有一个小的变化,即在每秒钟调用函数,即cd=setTimeout(“redo()”,1000);那么我们应该如何更改它。感谢您的建议JS Date对象有毫秒:可能与see重复。是的,我的代码中有一个小的更改,函数在每秒钟调用一次,即cd=setTimeout(“redo()”,1000);谢谢你的帮助,让我知道毫秒应该是以000为单位的,对吗?。因为1000毫秒=1秒1000=1秒所以…如果你将它设置为100,这将充分模拟毫秒。再次感谢。但它显示从10毫秒开始的倒计时。它应该是从1000毫秒开始的na?是的,你可以…其他两个毫秒数字移动如此快t这是一个模糊:-)。