Проблема в том, что вы переполняете массив.
Когда imageId == 3
, тогда следующая строка:
theImage.src = index[imageId];
приводит к тому, что theImage.src
устанавливается в undefined
.
Простой способ решить эту проблему - изменить код, чтобы изображение переходило к следующему изображению только в том случае, если идентификатор находится в пределах массива.
let clickedImage = () => {
// start animation opacity
if(op === 1) {
let timer = setInterval(() => {
if(op <= 0.1) {
// load the next image
imageId = imageId + 1;
console.log(imageId);
if (imageId >= index.length) {
window.location = "indexTwo.html";
} else {
theImage.src = index[imageId];
// reset the opacity
theImage.style.opacity = op = 1;
}
clearInterval(timer);
} else {
op -= 0.1;
theImage.style.opacity = op;
}
}, 100);
}
};