【JavaScript】画像が自動で変わるスライダーの作成方法
トップ画面でスライダーを作ってみたけれど、いざテストしてみると画像が変わらなかったこと、ありませんか?
今回は、画像が自動で変わるスライダーの作成方法を紹介します。
基本のコードは、以下になります。
まずは、position: absolute; でスライドしたい画像を重ねます。
次に、画像の横幅を 0 にして、画像を非表示にします。
表示したい画像のみ横幅を 80%にします。
画像の準備が整いましたので、スライダーの動作に関連する JavaScript を作ります。
まずは、index.js にquerySelectorAllでslider-imageクラスを指定します。
スライダー機能を実装するために、setInterval関数を使います。
繰り返す時間は 2000 ミリ秒、つまり 2 秒ごとに繰り返すようにします。
setInterval関数の中に、active を取り除くコードを作ります。
nextElementSiblingを使って、activeクラスを次の子要素に渡すようにします。
ブラウザで確認すると、
画像が次々に変わるようになりました。
今のままだと、最後の画像の後は空白になるので、最後の画像の次を最初の画像に戻るようにします。
そのために、カウンターを作成します。
まずは、カウンターの初期値をi=1にします。
setInterval関数の中に i が一つずつ増えるようにします。
i の値が画像の数より多くなったら初めの画像に戻るようにします。
その際、1 の値も 1 に戻すようにします。
if の条件が当てはまらない場合は、nextElementSiblingでactiveクラスを移動します。
ブラウザで確認すると、
画像が次々と入れ替わるようになりました。
setInterval関数を使うと簡単にスライダーが作れるので、ぜひ試してみてください。
お知らせ
私事ですが、Udemyで初心者を対象にしたReactの動画コースを作成しました。
Reactについて興味がありましたら、ぜひ下のリンクからアクセスしてください。
詳しくはこちら(Udemyの外部サイトへ遷移します)