Splide
プログレスバー
script
const splide = new Splide(".splide", {
autoplay: true, // 自動再生
type: "loop", // ループさせる
pagination: false, // ページネーションを非表示
pauseOnHover: false, // カーソルが乗ってもスクロールを停止させない
pauseOnFocus: false, // 矢印をクリックしてもスクロールを停止させない
interval: 2000, // 自動再生の間隔
speed: 1000, // スライダーの移動時間
});
const bar = splide.root.querySelector(".my-carousel-progress-bar");
// Splideの初期化が終わった際、またはスライドが切り替わる際にバーの長さを更新する
splide.on("mounted move", function () {
const end = splide.Components.Controller.getEnd() + 1;
const rate = Math.min((splide.index + 1) / end, 1);
bar.style.width = String(100 * rate) + "%";
});
splide.mount();
HTML
CSS
/* プログレスバーのスタイル */
.my-carousel-progress {
background-color: #cccccc;
}
.my-carousel-progress-bar {
background-color: #248cff;
height: 10px;
transition: width 1000ms ease;
width: 0;
}