Ich verwende CreateJS / EaselJS, um meine Inhalte zu erstellen.
Ich möchte eine kurze Verzögerung einfügen, bis dem Benutzer zusätzliche Inhalte zur Verfügung stehen. Es ist wichtig, die verbleibende Zeit anzuzeigen!
Meine Lösung:
myLabel.text = "5";
setTimeout(function(){ myLabel.text = "4";
setTimeout(function(){ myLabel.text = "3";
setTimeout(function(){ myLabel.text = "2";
setTimeout(function(){ myLabel.text = "1";
setTimeout(function(){
myLabel.text = "0";
myButton.addEventListener('click', myFunction);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
Ist das mit kürzerem Code möglich?
Bonus: Übergeben Sie eine Variable als Countdown-Dauer (z. B. 5000 für 5 Sek.)
Ich hoffe auf eine schnelle Antwort, Simon
1
SimonM
21 Aug. 2015 im 20:33
3 Antworten
Beste Antwort
Verwenden Sie stattdessen setInterval
:
var myNumber = 5;
myLabel.text = myNumber;
var myInterval = setInterval(function() {
myLabel.text = --myNumber;
if (myNumber === 0) {
myButton.addEventListener('click', myFunction);
clearInterval(myInterval);
}
}, 1000);
0
taxicala
21 Aug. 2015 im 17:37
Rufen Sie die Dekrementierungsfunktion auf, wenn Sie den Countdown starten möchten.
var remaining = 5;
function decrement(){
myLabel.text = remaining;
remaining--;
if(remaining >= 0){
setTimeout(decrement, 1000);
}
}
0
Dan Truitt
21 Aug. 2015 im 17:41
Dieser Code erstellt einen Countdown (Geige):
<div id="myLabel"></div>
var myLabel = document.getElementById('myLabel');
function countdown(duration) {
myLabel.innerText = duration;
if(duration > 0) {
setTimeout(function() {
countdown(duration - 1);
}, 1000);
} else {
myButton.addEventListener('click', myFunction);
}
}
countdown(8);
0
Ori Drori
21 Aug. 2015 im 18:15