Я пишу слайд-шоу. У меня наконец есть хорошая функция для показа только одного слайда. Он показывает это точно так же, как я хочу, с shoSlide ждать какое-то время, а затем скрыть слайд. Нет, что у меня это хорошо для одного слайда, моя проблема делает это для многих.JQuery Queue Function
function slideShow() {
console.log("countdown Slide Count: " + numberOfSlides);
console.log("Current slide number: " + jslideNumber);
$('#slide' + jslideNumber).fadeIn(1000).delay(5000).queue(function (next) {
console.log("Hiding Slide Number: " + jslideNumber);
$('#slide' + jslideNumber).fadeOut(1000);
next();
});
}
slideShow();
Я пробовал поместить в цикл WHILE, но используя либо петлю WHILE, либо FOR результаты в бесконечном счетчике. Я увеличивал jslideNumber ++ до этого, но проблема в том, что цикл увеличивает счетчик быстрее, чем может запускаться очередь. Поэтому, когда отображается Slide1, обычно Slide1 должен скрываться, но вместо этого отображается Slide1, а затем он пытается скрыть Slide6 к тому времени, когда задержка доходит до счетчика.
не вы переписывания кода. Не похоже на то, что я искал. Может быть 100 секунд слайдов, поэтому мне нужно сделать это вот так. – FunnyGirl
@FunnyGirl См. Обновленное сообщение, скорректированная анимация в '.fadeIn()', '.fadeOut()'; '[id^slide]' выбирает все элементы, где id начинается с «слайда»; '$ .map()' итерации '[id^slide]' элементов, один или сотни, ждет завершения текущей анимации перед вызовом анимации 'next' – guest271314
@FunnyGirl Вы также можете перезапустить анимацию по элементу 0, когда все анимации завершены , чтобы создать «бесконечный» цикл – guest271314