Avatar billede ravnborg Nybegynder
16. august 2006 - 18:50 Der er 18 kommentarer og
1 løsning

Pause og nulstil countdown script:

Jeg har et countdown script som jeg vil have tilføjet et par knapper til.

1: En pause knap
Når man klikker på pause knappen stopper nedtællingen, og når man klikker på den igen forsætter den.

2: Nulstil
En knap som stopper og nulstiller nedtællingen, så den går tilbage til 00:00 og venter på at blive sat igang igen


<script language="JavaScript">
<!-- Begin
var up,down;
var min1,sec1;
var cmin1,csec1,cmin2,csec2;
function Minutes(data) {
    for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break;
    return(data.substring(0,i)); }
function Seconds(data) {
    for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break;
    return(data.substring(i+1,data.length)); }
function Display(min,sec) {
    var disp;
    if(min<=9) disp="0";
    else disp="";
    disp+=min+":";
    if(sec<=9) disp+="0"+sec;
    else disp+=sec;
    return(disp); }
function Up() {
    cmin1=0;
    csec1=0;
    min1=0+Minutes(document.sw.beg1.value);
    sec1=0+Seconds(document.sw.beg1.value);
    UpRepeat(); }
function UpRepeat() {
    csec1++;
    if(csec1==60) { csec1=0; cmin1++; }
    document.sw.disp1.value=Display(cmin1,csec1);
    if((cmin1==min1)&&(csec1==sec1)) {
    if (document.all.HideShow.style.display == "none") {
    document.all.HideShow.style.display = "";
  } else {
    document.all.HideShow.style.display = "none";
  }
   
    }
    else up=setTimeout("UpRepeat()",1000); }
function Down() {
    cmin2=1*Minutes(document.sw.beg2.value);
    csec2=0+Seconds(document.sw.beg2.value);
    DownRepeat(); }
function DownRepeat() {
    csec2--;
    if(csec2==-1) { csec2=59; cmin2--; }
    document.sw.beg2.value=Display(cmin2,csec2);
    if((cmin2==0)&&(csec2==0)) document.all['BGSOUND_ID'].src='lyd/phone01.wav', document.billede.src='pic/alarm.gif', document.billede1.src='pic/alarm.gif';
    else down=setTimeout("DownRepeat()",1000); }
// End -->
</script>

<form name="sw">
    <input type="text" name="beg2" size="6" value="00:00">
    <input type="button" value="start" onclick="Down()">
</form>
Avatar billede mclemens Nybegynder
16. august 2006 - 19:58 #1
Hvad med:



var cstate=0,cstatcount=0;

function Down(tn,c) {
  if(tn==3)document.sw.beg2.value="00:00";
  if(tn==1||tn==2)cstate=tn;
  cstatcount++;
  if(cstate==1){
    if(document.sw.beg2.value=="00:00"){
      cmin2=1*Minutes(document.sw.beg2.value);
      csec2=0+Seconds(document.sw.beg2.value);
    }
    DownRepeat(cstatcount);
  }
}

function DownRepeat(c) {
  if(cstate==1&&c==cstatcount){
    csec2--;
    if(csec2==-1) { csec2=59; cmin2--; }
    document.sw.beg2.value=Display(cmin2,csec2);
    if((cmin2==0)&&(csec2==0)) document.all['BGSOUND_ID'].src='lyd/phone01.wav', document.billede.src='pic/alarm.gif', document.billede1.src='pic/alarm.gif';
    else down=setTimeout("DownRepeat("+c+")",10);
  }
}
Avatar billede mclemens Nybegynder
16. august 2006 - 19:58 #2
Åh joh :D


<form name="sw">
    <input type="text" name="beg2" size="6" value="00:00">
    <input type="button" value="start" onclick="Down(1)">
    <input type="button" value="pause" onclick="Down(2)">
    <input type="button" value="reset" onclick="Down(3)">
</form>
Avatar billede ravnborg Nybegynder
16. august 2006 - 20:12 #3
Jeg kan ikke få det til at virke.
når jeg i formfeltet skriver f.eks. 05:00 og trykker på start sker der ikke noget.

jeg har sat scriptet ind i et: <script language="JavaScript">  </script>

Skal der være noget body onload eller???
Avatar billede mclemens Nybegynder
16. august 2006 - 20:22 #4
Hmmm, havde sat timeout ned - tester lige og kaster et fuld eksempel...
Avatar billede mclemens Nybegynder
16. august 2006 - 20:26 #5
Denne virker her, men skal pudse det tidsdefinering til
- byggede på basis af 00:00 som der stod fra start af...
Avatar billede mclemens Nybegynder
16. august 2006 - 20:27 #6
Ups :D


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script language="JavaScript">
<!-- Begin
var up,down;
var min1,sec1;
var cmin1,csec1,cmin2,csec2;
function Minutes(data) {
    for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break;
    return(data.substring(0,i)); }
function Seconds(data) {
    for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break;
    return(data.substring(i+1,data.length)); }
function Display(min,sec) {
    var disp;
    if(min<=9) disp="0";
    else disp="";
    disp+=min+":";
    if(sec<=9) disp+="0"+sec;
    else disp+=sec;
    return(disp); }
function Up() {
    cmin1=0;
    csec1=0;
    min1=0+Minutes(document.sw.beg1.value);
    sec1=0+Seconds(document.sw.beg1.value);
    UpRepeat(); }
function UpRepeat() {
    csec1++;
    if(csec1==60) { csec1=0; cmin1++; }
    document.sw.disp1.value=Display(cmin1,csec1);
    if((cmin1==min1)&&(csec1==sec1)) {
    if (document.all.HideShow.style.display == "none") {
    document.all.HideShow.style.display = "";
  } else {
    document.all.HideShow.style.display = "none";
  }
 
    }
    else up=setTimeout("UpRepeat()",1000); }









var cstate=0,cstatcount=0;

function Down(tn,c) {
  if(tn==3)document.sw.beg2.value="00:00";
  if(tn==1||tn==2)cstate=tn;
  cstatcount++;
  if(cstate==1){
    if(document.sw.beg2.value=="00:00"){
      cmin2=1*Minutes(document.sw.beg2.value);
      csec2=0+Seconds(document.sw.beg2.value);
    }
    DownRepeat(cstatcount);
  }
}

function DownRepeat(c) {
  if(cstate==1&&c==cstatcount){
    csec2--;
    if(csec2==-1) { csec2=59; cmin2--; }
    document.sw.beg2.value=Display(cmin2,csec2);
    if((cmin2==0)&&(csec2==0)) document.all['BGSOUND_ID'].src='lyd/phone01.wav', document.billede.src='pic/alarm.gif', document.billede1.src='pic/alarm.gif';
    else down=setTimeout("DownRepeat("+c+")",1000);
  }
}
// End -->
</script>

</head><body>
<form name="sw">
    <input type="text" name="beg2" size="6" value="00:00">
    <input type="button" value="start" onclick="Down(1)">
    <input type="button" value="pause" onclick="Down(2)">
    <input type="button" value="reset" onclick="Down(3)">
</form>
</body></html>
Avatar billede mclemens Nybegynder
16. august 2006 - 20:31 #7
Hvad med denne her:




<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script language="JavaScript">
<!-- Begin
var up,down;
var min1,sec1;
var cmin1,csec1,cmin2,csec2;
function Minutes(data) {
    for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break;
    return(data.substring(0,i)); }
function Seconds(data) {
    for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break;
    return(data.substring(i+1,data.length)); }
function Display(min,sec) {
    var disp;
    if(min<=9) disp="0";
    else disp="";
    disp+=min+":";
    if(sec<=9) disp+="0"+sec;
    else disp+=sec;
    return(disp); }
function Up() {
    cmin1=0;
    csec1=0;
    min1=0+Minutes(document.sw.beg1.value);
    sec1=0+Seconds(document.sw.beg1.value);
    UpRepeat(); }
function UpRepeat() {
    csec1++;
    if(csec1==60) { csec1=0; cmin1++; }
    document.sw.disp1.value=Display(cmin1,csec1);
    if((cmin1==min1)&&(csec1==sec1)) {
    if (document.all.HideShow.style.display == "none") {
    document.all.HideShow.style.display = "";
  } else {
    document.all.HideShow.style.display = "none";
  }
 
    }
    else up=setTimeout("UpRepeat()",1000); }









var cstate=0,cstatcount=0,cinit;

function Down(tn,c) {
  if(tn==3&&cinit!=undefined){
    document.sw.beg2.value=cinit;
    cmin2=1*Minutes(document.sw.beg2.value);
    csec2=0+Seconds(document.sw.beg2.value);
  }
  if(tn==1||tn==2)cstate=tn;
  cstatcount++;
  if(cstate==1){
    if(cmin2==undefined){
      cinit=document.sw.beg2.value;     
      cmin2=1*Minutes(document.sw.beg2.value);
      csec2=0+Seconds(document.sw.beg2.value);
    }
    DownRepeat(cstatcount);
  }
}

function DownRepeat(c) {
  if(cstate==1&&c==cstatcount){
    csec2--;
    if(csec2==-1) { csec2=59; cmin2--; }
    document.sw.beg2.value=Display(cmin2,csec2);
    if((cmin2==0)&&(csec2==0)) document.all['BGSOUND_ID'].src='lyd/phone01.wav', document.billede.src='pic/alarm.gif', document.billede1.src='pic/alarm.gif';
    else down=setTimeout("DownRepeat("+c+")",10);
  }
}
// End -->
</script>

</head><body>
<form name="sw">
    <input type="text" name="beg2" size="6" value="05:00">
    <input type="button" value="start" onclick="Down(1)">
    <input type="button" value="pause" onclick="Down(2)">
    <input type="button" value="reset" onclick="Down(3)">
</form>
</body></html>
Avatar billede ravnborg Nybegynder
16. august 2006 - 20:40 #8
Det hjalp lidt.

-Den skulle gerne tælle minutter og sekunder
-Når man klikker på reset starter den nedtællingen igen. Kan man ikke få den til at hoppe tilbage til 00:00 og blive der?
Avatar billede mclemens Nybegynder
16. august 2006 - 20:44 #9
[ -Den skulle gerne tælle minutter og sekunder ]
Timeouten har jeg pillet ved... for at teste ... 5 minutter er lang tid at vente på at nå bunden - else down=setTimeout("DownRepeat("+c+")",10); rettes til else down=setTimeout("DownRepeat("+c+")",1000);

[ -Når man klikker på reset starter den nedtællingen igen. Kan man ikke få den til at hoppe tilbage til 00:00 og blive der? ] Før den til at hoppe til nul og stå på "pause".
Avatar billede mclemens Nybegynder
16. august 2006 - 20:44 #10
Før -> Får
Avatar billede mclemens Nybegynder
16. august 2006 - 20:48 #11
Hvad med:





<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script language="JavaScript">
<!-- Begin
var up,down;
var min1,sec1;
var cmin1,csec1,cmin2,csec2;
function Minutes(data) {
    for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break;
    return(data.substring(0,i)); }
function Seconds(data) {
    for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break;
    return(data.substring(i+1,data.length)); }
function Display(min,sec) {
    var disp;
    if(min<=9) disp="0";
    else disp="";
    disp+=min+":";
    if(sec<=9) disp+="0"+sec;
    else disp+=sec;
    return(disp); }
function Up() {
    cmin1=0;
    csec1=0;
    min1=0+Minutes(document.sw.beg1.value);
    sec1=0+Seconds(document.sw.beg1.value);
    UpRepeat(); }
function UpRepeat() {
    csec1++;
    if(csec1==60) { csec1=0; cmin1++; }
    document.sw.disp1.value=Display(cmin1,csec1);
    if((cmin1==min1)&&(csec1==sec1)) {
    if (document.all.HideShow.style.display == "none") {
    document.all.HideShow.style.display = "";
  } else {
    document.all.HideShow.style.display = "none";
  }
 
    }
    else up=setTimeout("UpRepeat()",1000); }









var cstate=0,cstatcount=0;

function Down(tn,c) {
  if(tn==3){
    document.sw.beg2.value="00:00";
    cmin2=1*Minutes(document.sw.beg2.value);
    csec2=0+Seconds(document.sw.beg2.value);
  }
  cstate=tn;
  cstatcount++;
  if(cstate==1){
    if(cmin2==undefined){ 
      cmin2=1*Minutes(document.sw.beg2.value);
      csec2=0+Seconds(document.sw.beg2.value);
    }
    DownRepeat(cstatcount);
  }
}

function DownRepeat(c) {
  if(cstate==1&&c==cstatcount){
    csec2--;
    if(csec2==-1) { csec2=59; cmin2--; }
    document.sw.beg2.value=Display(cmin2,csec2);
    if((cmin2==0)&&(csec2==0)) document.all['BGSOUND_ID'].src='lyd/phone01.wav', document.billede.src='pic/alarm.gif', document.billede1.src='pic/alarm.gif';
    else down=setTimeout("DownRepeat("+c+")",1000);
  }
}
// End -->
</script>

</head><body>
<form name="sw">
    <input type="text" name="beg2" size="6" value="05:00">
    <input type="button" value="start" onclick="Down(1)">
    <input type="button" value="pause" onclick="Down(2)">
    <input type="button" value="reset" onclick="Down(3)">
</form>
</body></html>
Avatar billede ravnborg Nybegynder
16. august 2006 - 21:05 #12
Når jeg har trykket på reset skriver den 00:00 som den skal, men når jeg sætter den i gang igen, går den ikke ud fra det nye tal, jeg har indtastet i formfeltet, men starter med 0-1:59.
Avatar billede mclemens Nybegynder
16. august 2006 - 21:09 #13
Ok, det gjorde den også fra start af - sætter lige en validering på den. :o)
Avatar billede mclemens Nybegynder
16. august 2006 - 21:15 #14
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script language="JavaScript">
<!-- Begin
var up,down;
var min1,sec1;
var cmin1,csec1,cmin2,csec2;
function Minutes(data) {
    for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break;
    return(data.substring(0,i)); }
function Seconds(data) {
    for(var i=0;i<data.length;i++) if(data.substring(i,i+1)==":") break;
    return(data.substring(i+1,data.length)); }
function Display(min,sec) {
    var disp;
    if(min<=9) disp="0";
    else disp="";
    disp+=min+":";
    if(sec<=9) disp+="0"+sec;
    else disp+=sec;
    return(disp); }
function Up() {
    cmin1=0;
    csec1=0;
    min1=0+Minutes(document.sw.beg1.value);
    sec1=0+Seconds(document.sw.beg1.value);
    UpRepeat(); }
function UpRepeat() {
    csec1++;
    if(csec1==60) { csec1=0; cmin1++; }
    document.sw.disp1.value=Display(cmin1,csec1);
    if((cmin1==min1)&&(csec1==sec1)) {
    if (document.all.HideShow.style.display == "none") {
    document.all.HideShow.style.display = "";
  } else {
    document.all.HideShow.style.display = "none";
  }

    }
    else up=setTimeout("UpRepeat()",1000); }









var cstate=0,cstatcount=0;

function Down(tn,c) {
  if(tn==3){
    document.sw.beg2.value="00:00";
    cmin2=0;csec2=0;
  }
  cstate=tn;
  cstatcount++;
  if(cstate==1){
    cmin2=1*Minutes(document.sw.beg2.value);
    csec2=0+Seconds(document.sw.beg2.value);
    DownRepeat(cstatcount);
  }
}

function DownRepeat(c) {
  if((cstate==1&&c==cstatcount)&&(cmin2>0||csec2>0)){
    csec2--;
    if(csec2==-1) { csec2=59; cmin2--; }
    document.sw.beg2.value=Display(cmin2,csec2);
    if((cmin2==0)&&(csec2==0)) document.all['BGSOUND_ID'].src='lyd/phone01.wav', document.billede.src='pic/alarm.gif', document.billede1.src='pic/alarm.gif';
    else down=setTimeout("DownRepeat("+c+")",1000);
  }
}
// End -->
</script>

</head><body>
<form name="sw">
    <input type="text" name="beg2" size="6" value="05:00">
    <input type="button" value="start" onclick="Down(1)">
    <input type="button" value="pause" onclick="Down(2)">
    <input type="button" value="reset" onclick="Down(3)">
</form>
</body></html>
Avatar billede ravnborg Nybegynder
16. august 2006 - 21:25 #15
Sådan - Super godt...
Nu virker scriptet perfekt. Så mangler vi bare een ting, at du opretter er svar, så du kan få dine velfortjente point :-)

mvh
Ravnborg
Avatar billede mclemens Nybegynder
16. august 2006 - 21:26 #16
Lækkert nok, her er lige et svar :o)
Avatar billede mclemens Nybegynder
16. august 2006 - 21:28 #17
Og tak for point :o)
Avatar billede mclemens Nybegynder
16. august 2006 - 23:38 #18
En lille rettelse af en funktion ...
function Down(tn,c) {
  if(tn==3){
    document.sw.beg2.value="00:00";
    cmin2=0;csec2=0;
  }
  cstate=(tn==2&&cstate==tn)?1:tn;
  cstatcount++;
  if(cstate==1){
    cmin2=1*Minutes(document.sw.beg2.value);
    csec2=0+Seconds(document.sw.beg2.value);
    DownRepeat(cstatcount);
  }
}



... Så afhængig af cstate og tryk på pause knap 2 gange - starter den ved klik nr. 2 på pause ( cstate=tn; rettet til cstate=(tn==2&&cstate==tn)?1:tn; ) ... Hvis cstate er lig 2(pause) og den får et klik på pause igen (tn måling) så skal cstate være 1(startet) ellers skal cstate være status på knappen man trykkede på ...

[ 1: En pause knap
Når man klikker på pause knappen stopper nedtællingen, og når man klikker på den igen forsætter den. ] ... Jeg skal jo ikke have point for noget sjusk :D
Avatar billede ravnborg Nybegynder
17. august 2006 - 17:12 #19
SUPER
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester