23. april 2008 - 12:51Der er
22 kommentarer og 1 løsning
Nedtælling - indsæt "0" hvis tal under 10
Har dette nedtællingssystem:
<HTML> <HEAD> <script language="JavaScript"> ie = document.all nn = document.layers
function CountDown() { var nu = new Date(); var Totusind = new Date(2008, 3, 27, 00, 00, 1); var S = Totusind.getTime() - nu.getTime(); var T, M, Se, Ms; T = Math.floor(S / (60*60*1000)); S = S - (T * (60*60*1000)); M = Math.floor(S / (60*1000)); S = S - (M * (60*1000)); Se = Math.floor(S/1000); S = S - (Se * 1000); Ms = Math.floor(S / 10); Temp = parseInt(T,10)+' timer '+parseInt(M,10) + ' minutter ' + parseInt(Se,10) + ' sekunder ' + parseInt(Ms, 10) + ' hundrededele '; if (ie) {tid.innerHTML=Temp;} else {document.tid.document.write(Temp); document.tid.document.close()} setTimeout ("CountDown()", 1); }
function Init() { setTimeout ("CountDown()", 1); }
Jeg vil gerne have indsat et 0 før det givne tal (timer, minutter, sekunder, hundrededele) - Hvis det er 9 eller derunder, således så jeg undgår at teksterne kommer til at stå og "hoppe" når der pludselig forsvinder et tal og linjen derfor bliver kortere (det ser især dumt ud på hundrededele)
T = Math.floor(S / (60*60*1000)); S = S - (T * (60*60*1000)); M = Math.floor(S / (60*1000)); S = S - (M * (60*1000)); Se = Math.floor(S/1000); S = S - (Se * 1000); Ms = Math.floor(S / 10);
til:
T = Math.floor(S / (60*60*1000)); T = T<10 ? "0"+T : T; S = S - (T * (60*60*1000)); M = Math.floor(S / (60*1000)); M = M<10 ? "0"+M : M; S = S - (M * (60*1000)); Se = Math.floor(S/1000); S = S - (Se * 1000); S = S<10 ? "0"+S : S; Ms = Math.floor(S / 10); Ms = Ms<10 ? "0"+Ms : Ms;
Så virker det... Timer og minutter er som det skal være... Sekunder manglede følgende linje bare: Se = Se<10 ? "0"+Se : Se;
Hvis du lige har det siddende til højrebenet, kan du så svare på om jeg kan lave noget ligende med teksten der skal stå, men bare hvis tallet er = 1 så der så står "time" i stedet for "timer" osv.
-- og så kan det da anbefales at lave en generel funktion, der gør det:
function twoDigits(num){ return num<10 ? "0" + num : num; }
-- så bliver din kode en del kortere:
T = twoDigits(Math.floor(S / (60*60*1000))); S = S - (T * (60*60*1000)); M = twoDigits(Math.floor(S / (60*1000))); S = S - (M * (60*1000)); Se = twoDigits(Math.floor(S/1000)); S = S - (Se * 1000); Ms = Math.floor(S / 10); Ms = Ms<10 ? "00"+Ms : Ms<100 ? "0" + Ms : Ms;//Ms skal jo være tre-cifrede !-)
jeg kan ikke få denne kode til at virke når jeg ligger den op på min ftp server. Der bliver bare vist en tom hvid side i min browser når jeg er på siden.
function CountDown() { var nu = new Date(); var Totusind = new Date(2008, 3, 27, 00, 00, 1); var S = Totusind.getTime() - nu.getTime(); var T, M, Se, Ms; = Math.floor(S / (60*60*1000)); T = T<10 ? "0"+T : T; S = S - (T * (60*60*1000)); M = Math.floor(S / (60*1000)); M = M<10 ? "0"+M : M; S = S - (M * (60*1000)); Se = Math.floor(S/1000); S = S - (Se * 1000); S = S<10 ? "0"+S : S; Se = Se<10 ? "0"+Se : Se; Ms = Math.floor(S / 10); Ms = Ms<10 ? "0"+Ms : Ms; Temp = T+' timer '+M+ ' minutter '+Se+' sekunder '+Ms+' hundrededele '; if (ie) {tid.innerHTML=Temp;} else {document.tid.document.write(Temp); document.tid.document.close()} setTimeout ("CountDown()", 1); }
function Init() { setTimeout ("CountDown()", 1); }
Ok? Den bør nok optimeres/opdateres lidt i øvrigt: *************************************** <html> <head> <title>hej</title> <script type="text/javascript"> function CountDown(){ var nu = new Date(); var Totusind = new Date(2008, 3, 27, 00, 00, 1); var S = Totusind.getTime() - nu.getTime(); var T, M, Se, Ms; = Math.floor(S / (60*60*1000)); T = T<10 ? "0"+T : T; S = S - (T * (60*60*1000)); M = Math.floor(S / (60*1000)); M = M<10 ? "0"+M : M; S = S - (M * (60*1000)); Se = Math.floor(S/1000); S = S - (Se * 1000); S = S<10 ? "0"+S : S; Se = Se<10 ? "0"+Se : Se; Ms = Math.floor(S / 10); Ms = Ms<10 ? "0"+Ms : Ms; Temp = T+' timer '+M+ ' minutter '+Se+' sekunder '+Ms+' hundrededele '; tid.firstChild.nodeValue=Temp; setTimeout("CountDown()",30); }
function Init(){ CountDown() }
</script> <body onload="Init()">
<div id="tid"> </div>
Test
</body> </html>
Og hvis den stadig ikke viser noget overhovedet, så har du ikke lagt den rigtigt op. =) Den skulle gerne i det mindste vise ordet "Test".
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.