slide.classList.remove("active"));
slides[index].classList.add("active");
updateActiveTitle(index);
autoPlay();
}
function updateActiveTitle(index) {
const titles = document.querySelectorAll(".project-titles span");
titles.forEach(t => t.classList.remove("active"));
if (titles[index]) {
titles[index].classList.add("active");
titles[index].scrollIntoView({ behavior: 'smooth', inline: 'center' });
}
}
function autoPlay() {
clearTimeout(timeout);
const duration = slides[currentIndex].dataset.duration * 1000 || 5000;
timeout = setTimeout(() => {
currentIndex = (currentIndex + 1) % slides.length;
changeSlide(currentIndex);
}, duration);
}
slides.forEach((slide, index) => {
const titleText = slide.querySelector("img").alt;
const title = document.createElement("span");
title.innerText = titleText;
title.addEventListener("click", () => {
currentIndex = index;
changeSlide(index);
});
titlesContainer.appendChild(title);
});
updateActiveTitle(currentIndex);
autoPlay();
});
function scrollTitles(distance) {
const container = document.getElementById("projectTitles");
container.scrollBy({ left: distance, behavior: 'smooth' });
}