2 つの関数を定義します。1 つは次へ、もう 1 つは前へ移動します。
function gotoNext() {
var active = document.querySelector(".carouselImage.carouselActive"); //select active image
if (active == null) { //if no active image select the first
document.querySelector(".carouselImage[imgn='1']").className += " carouselActive";
} else {
active.className = "carouselImage";
var curId = active.getAttribute("imgn"); //imgn of selected image
var next = document.querySelector(".carouselImage[imgn='" + (++curId) + "']"); //next image. if there is no next image select the first
if (next == null) document.querySelector(".carouselImage[imgn='1']").className += " carouselActive";
else next.className += " carouselActive";
}
}
function gotoPrev() {
var active = document.querySelector(".carouselImage.carouselActive"); //select active image
if (active == null) { //if no active image select the first
document.querySelector(".carouselImage[imgn='1']").className += " carouselActive";
} else {
active.className = "carouselImage";
var curId = active.getAttribute("imgn"); //imgn of selected image
var prev = document.querySelector(".carouselImage[imgn='" + (--curId) + "']"); //prev image. if there is no prev image select the last
if (prev == null) document.querySelector(".carouselImage[imgn='4']").className += " carouselActive";
else prev.className += " carouselActive";
}
}
注: className = ... を、クラスを削除または追加できる関数に置き換えることをお勧めします。たとえば、jquery には removeClass("className") と addClass("className") があります。jquery を使用しない実装もあります。