2016-12-30 2 views
1

Ich mache ein einfaches Spiel, das Zufallszahlen generiert und Benutzer muss einen Wert eingeben, wenn Benutzer Wert entspricht dem Zufallswert generiert, der Benutzer gewinnt im Grunde ist dies ein Anfänger-Projekt. Ich möchte einen kleinen Zähler machen, so dass der Benutzer eine begrenzte Zeit hat, den Wert einzugeben, und ich möchte, dass diese begrenzte Zeit auf dem Bildschirm in einem Etikett angezeigt wird. Nehmen wir an, Sie müssen den Wert unter 30 Sekunden setzen und der Timer zählt jede Sekunde von 1 bis 30. Die Zählung von 1 bis 30 wird jede Sekunde im Etikett aktualisiert. Das ist die Logik, an der ich gerade arbeite, und ich kann keine andere Möglichkeit finden ... Wenn ich einen Fehler im Code gemacht habe, kommentiere bitte oder wenn du viel einfacher bist, poste es bitte unten . (pls nicht im bei der Gefahr einer Kontosperrung aufgrund niederstimmen) Heres der Teil meines Timer-Code:Wie mache ich einen sehr einfachen Countdown-Timer in Javascript?

if(timer <= 30) 
    { 
     for(var i = 0;i >= 30;i++) 
     { 
      setInterval(null,1000); 
      timer++; 
      document.getElementById("counter").innerHTML = timer+" seconds wasted"; 
     } 
     alert("Time is over, you lost by "+s); 
    } 
+0

Ich hatte eine [Timer - Fiddle] erstellt (http://jsfiddle.net/RajeshDixit/0gvfc5yy/12/). Sie können es als Referenz verwenden – Rajesh

+0

Wenn Sie in Gefahr sind, Ihr Konto Frage-verboten zu bekommen, ist es für immer wieder miserable Fragen zu stellen. Bitte flehen Sie uns nicht an, zu verzichten. Schreiben Sie einfach Fragen im Wert von Upvoting. : P – cHao

+0

@cHao Ich bin kein Programmierer pro hahahha im nur 13 ich kann nicht viel tun: P –

Antwort

0

Sie könnten eine rekursive Funktion erstellen. Sagen var countDown function(){ time = time--; setTimeout(countDown, 1000);}

Dann benötigen Sie eine variable Zeit, die für die Countdown-Funktion zugänglich ist. var time = 30;

In der countDown-Funktion könnten Sie ein updateTimeElement erstellen.

Probieren Sie es aus.

0

Die setInterval-Funktion hat zwei Parameter, einen Rückruf (eine anomynous Funktion in Javascript, das ist ausgelöst) und der Millisekunden zwischen jedem Trigger des Intervalls.

Was Sie in Ihrem Skript tun, ist ein Intervall mit nichts zu tun, jede Sekunde zu tun (das läuft unbestimmt), dann den Timer Integer erhöhen und das DOM aktualisieren. Dies alles wird jedoch innerhalb von Sekunden ausgeführt.

Ich würde empfehlen (bevor Sie eine Funktion verwenden) schauen Sie sich die Dokumentation an, um zu sehen, wie Sie Ihr Skript so verbessern können, wie Sie es wollen ;-) Hier sind ein paar Links, die Ihnen beim Einstieg helfen könnten:

http://www.w3schools.com/js/js_timing.asp https://www.sitepoint.com/build-javascript-countdown-timer-no-dependencies/

ich werde nicht die Arbeit für Sie tun, da dies eine gute Übung für einen Anfänger-Programmierer ist ;-)

Wenn Sie es nicht herausfinden können,, lassen Sie einen Kommentar unter diesem antworte und ich melde mich bei dir, um dir zu helfen, wenn du weitere Hilfe brauchst.

Verwandte Themen