Ich weiß, es klingt einfach für die meisten von euch, aber es hat mich seit einer Weile jetzt nervt. Ich habe versucht, ein Array und seine Elemente jede Sekunde durchzuschleifen und eine Funktion auszuführen, wobei das Element aufgerufen wird. Aber das Ergebnis ist immer der Loop-Druck aller Elemente auf einmal.Drucken Array-Element jede Sekunde
So sieht mein Code aus. Entschuldigung, wenn es unordentlich ist.
var ticking = window.setInterval(ticks, 1000);
function ticks() {
var morse = ['.', '-', '-', '-', '-'];
for (i = 0; morse.length > i; i++) {
if (morse[i] == '.') {
tickArrowDegree = 516;
$('#tick-arrow').css({'transform': 'rotate(' + tickArrowDegree + 'deg)'});
setTimeout(function reset() {
$('#tick-arrow').css({'transform': 'rotate(' + startPoint + 'deg)'});
}, 500);
}
else {
tickArrowDegree = 522;
$('#tick-arrow').css({'transform': 'rotate(' + tickArrowDegree + 'deg)'});
setTimeout(function reset() {
$('#tick-arrow').css({'transform': 'rotate(' + startPoint + 'deg)'});
}, 500);
}
}
}
:) „Aber das Ergebnis ist immer die Schleife Druck alle Elemente auf einmal.“ Welches Element druckst du? –
'setTimeout()' stellt eine Funktion in die Warteschlange, die später ausgeführt werden soll. Die aktuelle Ausführung wird nicht angehalten. (So laufen alle Timeouts ab, nachdem die Schleife beendet ist.) Die einfachste Änderung an Ihrem vorhandenen Code wäre, die Verzögerung auf '500 * i' anstatt auf' 500' zu setzen. – nnnnnn
Ich möchte das erste Element drucken, habe eine Pause, dann drucke Sekunde und pausiere es wieder, usw., bis alle Elemente ausgedruckt sind. – Vasko