Когда ставлю интервалы, элементы массива копируются. То есть, вместо того, чтобы вывести текст "Make You Dreams Come True один раз и повторить, этот текст выводится несколько раз. Проблема не в самих интервалах, а где-то в цикле. Вот только, что сделала не так, не могу понять.
var words = ["Make", "Your Dreams", "Come True"];
function text() {
for (var i = 0; i < words.length; i++) {
$("#motivation-words").append("<p>" + words[i] + "</p>");
$("#motivation-words").last().hide().slideDown((i + 1) * 4000).fadeOut(2000);
};
}
setInterval(text, 2000);
Не совсем понятна проблема: что означает “ставлю интервалы”, “вывести один раз и повторить” (т.е. вывести дважды?), “элементы массива копируются” (куда они копируются, вроде не видно, чтобы их копировали) :)
Думаю, вопрос всё же в setInterval - 2000 - это промежуток времени, через который будет повторяться вызов функции, но ничто не останавливает этот вызов, поэтому функция будет выполняться бесконечно
Спасибо большое за ответ. Не совсем, планировалось, чтобы после появления текст исчезал и с интервалами появлялся снова. У меня же старый текст не исчезает, а с интервалами просто под ним появляется новый. То есть, вместо того, чтобы проигрываться по новой, функция дублируется под уже выполненной. Пробовала ставить fadeOut но это не решило проблемы
можно подробное описание - как должно работать в итоге?
Текст Make Your dreams Come true - это должен быть один div-контейнер, который исчезает и снова появляеться через 4 сек, и так постоянно? (то-есть - мигает каждые 4 сек). Но изначально при загрузке страницы - текст видимый. Все верно?
изначально текст невидимый, потом появляется, а потом как вы описали: исчезает и снова появляется.
По сути, нужно то, что вы сделали здесь https://jsfiddle.net/LenaR/4osj7prd/ после выполнения исчезло и повторилось снова и так бесконечное количество раз
А может текст изначально внести в html? В общем диве каждое слово поместить в тег p. И управлять видимостью этих тегов, а не каждый раз вставлять новый элемент в документ.