【JavaScript】ステップバーの作成方法
JavaScriptでステップバーを作成する方法を紹介します。
ステップバーのデモ
See the Pen ステップ by Sosak (@Sosak2021) on CodePen.
ステップバーのJavaScript
HTML、CSS、JavaScriptのソースコードは上を参照してみてください。
const progress = document.querySelector('.js-progress');
const prev = document.getElementById('prev');
const next = document.getElementById('next');
const circles = document.querySelectorAll('.step-circle');
let currentActive = 1;
// 進むボタン
next.addEventListener('click', () => {
currentActive++
if(currentActive > circles.length) {
currentActive = circles.length
}
update();
});
// 戻るボタン
prev.addEventListener('click', () => {
currentActive--
if(currentActive < 1) {
currentActive = 1
}
update();
});
function update() {
circles.forEach((circle, index) => {
if(index < currentActive) {
circle.classList.add('is-active')
} else {
circle.classList.remove('is-active')
}
})
const actives = document.querySelectorAll('.is-active')
progress.style.width = (actives.length - 1) / (circles.length - 1) * 100 + '%'
// ボタンのdisabledを制御
controlBtn();
}
// ボタンのdisabledを制御
function controlBtn() {
if(currentActive === 1) {
prev.disabled = true;
} else if(currentActive === circles.length) {
next.disabled = true;
} else {
prev.disabled = false;
next.disabled = false;
}
}