Когда вы устанавливаете начало в 0, вы устанавливаете источник изображения как неопределенный для этой итерации карусели, поскольку вы не присвоили значение источнику изображения.
Вместо этого рассмотрите возможность использования модулявыбрать изображение для отображения.
// initially, start = 0
if (start % numImages === 0) {
// display image 1
}
else if (start % numImages === 1) {
// display image 2
}
ИЛИ: вы можете вызвать свой метод и вернуться при установке начала на 0:
start = 1;
carousel();
return;
Но для более приемлемого решения вы можетехотите сделать это:
const images = [ 'images/image1.jpg', ... ];
const currImage = images[ start % images.length ];
document.getElementById('images').src = currImage;
start++;
// This part is optional, it's unlikely a user would be on the page long enough
// for start to overflow
if (start === images.length) {
start = 0;
}
Это будет ваша целая функция карусели.
Таким образом, вы можете легко добавить больше изображений позже, не слишком меняя свою функцию.Все, что вам нужно сделать, это перечислить файлы, которые вы отображаете в массиве, и все будет готово.