jQuery FadeIn/FadeOut, цикл по массиву
Вопрос
По этому URL - http://thespacebetweenthewords.org/sandbox/
Я пытаюсь переехать через массивы слов с эффектом jQuery Fadein/Fadeout.
Тем не менее, массив отображаемых слов не начинается с [0].Возможно, я что -то упускаю с порядок, в котором выполняются функции.
Если кто -то в сообществе хотел бы прокомментировать код, поскольку он стоит до сих пор, понимает.
Решение
Вы правильно используете функцию обратного вызова с .fadeIn()
чтобы гарантировать, что слово не начнет исчезать, пока оно не закончится.Однако вы не применили тот же принцип к перебору глаголов.Ваш внешний for
цикл мгновенно просмотрит все глаголы, показывая каждый из них, а затем терпеливо ждет, пока не придет время их скрыть (когда, конечно, к тому времени будет отображаться только самый последний глагол).
Вы можете попробовать что-то вроде этого:
function showWord(selector, words, wordTime, i) {
if (words.length < i)
return;
var word = words[i];
$(selector).html(word).fadeIn(wordTime, function() {
$(selector).fadeOut(wordTime, function() {
showWord(selector, words, wordTime, i + 1);
});
});
}
showWord("#verb-content", data.verbs, verbTime, 0);