Я пытаюсь изменить последнее слово в предложении каждую n-ю секунду.Я хочу, чтобы слово исчезло в определенном интервале, затем заменило слово и, наконец, появилось новое слово.
У меня проблемы с параллельной природой Javascript.Независимо от того, как я пытаюсь, я не могу заставить свой цикл приостановить выполнение после каждого слова.
Моя последняя попытка выглядит так:
var shuffleSentences;
$(function() {
return shuffleSentences();
});
shuffleSentences = function() {
var div, index, sentence, sentences;
div = $(".sentences");
sentences = div.data("sentences").split(";");
sentence = div.html();
index = sentences.indexOf(sentence);
sentences.splice(index, 1);
return $.each(sentences, function(i, sentence) {
return setTimeout((function() {
return div.fadeTo(500, 0.0, function() {
div.html(sentence);
return div.fadeTo(1000, 1.0, function() {
if (sentences.length === i + 1) {
console.log("Restart: " + i);
return shuffleSentences();
} else {
return console.log("Don't restart: " + i);
}
});
});
}), 4000);
});
};
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>We're at number <span class="sentences" data-sentences="one;two;three;four">two</span></p>
Как видите, замены слов действительно случаются, но, глядя в консоль, кажется, что я делаю это неправильно.
Предложения приветствуются!