• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Countdown ohne Wiederholung

Sophia89

New member
Hey,

zuallererst: Ich bin blutige Anfängerin im Programmierbereich, benötige aber html/javascript, um ein Experiment für meine Masterarbeit zu programmieren. Wäre super, wenn mir jemand helfen könnte!

Also, ich erstelle einen Onlinefragebogen und bei einer Frage sollen die Versuchspersonen nur eine bestimmte Zeit zum Antworten haben. Dies soll durch einen Countdown visualisiert werden, der von 10 auf 0 zählt. Das Problem mit meinem bisherigen Code ist, dass der Countdown immer wieder von vorne beginnt.. Wie kann ich ihn nur einmal zählen lassen?

So sieht mein Code aus:

HTML:
<h3 id="remain">*</h3>
<h1 id="downloading">*</h1>
<script language="JavaScript">// <![CDATA[
 function countdown(zahl){
  if(zahl>10) {
   count(zahl);
  }
  else if(zahl>=0 & zahl<=11){
   document.getElementById('remain').innerHTML= "Verbleibende Zeit:"
   document.getElementById('downloading').innerHTML=zahl+ " Sekunden ";
   count(zahl);
  }
  else {
   document.getElementById('downloading').innerHTML=" 0 Sekunden";
  }
 }

 function count(countzahl){
  // gewünschte Handlung kann hier eingebaut werden
  countzahl=countzahl-1;
  setTimeout("countdown("+countzahl+");",1000);
 }
 count(11);
 // ]]></script>

Vielen Dank schon im Voraus! LG
 
Hallo,
ich verstehe nicht was du mit "Das Problem mit meinem bisherigen Code ist, dass der Countdown immer wieder von vorne beginnt." meinst. Bei mir zählt er von "10 Sekunden" bis "0 Sekunden" und bleibt dann bei 0 (Chrome und FF, beide aktuell). Unter "von vorne beginnen" verstehe ich, dass der Zähler wieder bei 10 anfängt, was nicht der Fall ist.:confused:
 
Warum verwendest du zwei Funktionen?

So:

Code:
<script language="JavaScript">// <![CDATA[
 function countdown(zahl){
  if(zahl>10) {
   zahl--;
   setTimeout(function(){ countdown(zahl); }, 1000);
  }
  else if(zahl>=0 & zahl<=11){
   document.getElementById('remain').innerHTML= "Verbleibende Zeit:"
   document.getElementById('downloading').innerHTML=zahl+ " Sekunden ";
   count(zahl);
  }
  else {
   document.getElementById('downloading').innerHTML=" 0 Sekunden";
  }
 }


 // ]]></script>

sollte es auch gehen, wenn du die Funktion noch, zum Beginn, mit

Code:
countdown(11);

initialisierst.


Falls der Timer auch optisch etwas besonderes sein soll bzw. weitere Funktionen gewünscht sind, schau dir mal das hier an:

countdown flip clock timer
 
Zuletzt bearbeitet:
Zurück
Oben