【JQuery】複数画像を一定の秒数で重複させずにランダム切り替え表示

投稿者: | 2021年1月24日
JQueryアイキャッチ画像

 

今回はJavaScriptとJQueryを使用してホームページやブログなのでよく見かける、重複しないランダムな画像の切り替え処理のデモを実施してみたいと思います。

 

完成後

1秒間隔でランダムな画像に切り替わります(*^^)v

画像が表示されない場合はCtrl + F5 キー押してみてください。

 

 

それではいってみましょう(*゚▽゚)ノ

 

作成手順

大まかな作成手順

・5つの画像を使用します。

・imgタグをHTMLに追加します。

・5つの画像を乱数でランダム化します。

・5つの画像を重複なしのデータに編集して配列に格納します。

・ランダム化した重複しない5枚の画像を1秒ごとに表示させます。

 

 

サンプルコード

HTMLサンプル

JavaScript/JQueryサンプル

解説

HTMLのimgTestクラスの子の先頭に<img src=””>を追加します。(prependTo

画像のパスを変数に格納します。

画像の配列を作成しておきます。

ランダム画像を1枚ずつ別の配列に追加格納するために、空の配列(最後にこの配列addAryを昇順で表示させていきます)を作成しておきます。

JQueryのeachメソッドの繰り返し処理で重複なしのランダムな順番の配列を作成していきます。

配列数だけ整数の乱数を作成し1回ループするごとにspliceメソッドで要素が1つ削除されるのでsrcAry.lengthは-1ずつ減っていきます。

配列addAryの先頭にunshiftメソッドでsrcAryの乱数で作成された要素を追加していきます。

spliceメソッドの要素を1つ削除します。

ここから画面に表示させていきます。setIntervalで1秒ごとに画像を入れ替える処理をします。

ifで変数iが配列数とイコールになったら変数iを0に戻し、ランダムに並び替えられた画像の配列を今度は昇順で表示させていきます。

imgSampleクラスの子要素のimg要素のsrc属性の値attrメソッドで配列の要素(画像パス)を設定します。

 

【今回使用した5枚の画像】

111 222 333 444 555

 

【完成後】

重複しない画像が1秒ごとにランダムに表示されます\(^^)/

 

 

ブラウザの更新ボタンかF5キー(リロード)で更新するたびに、新しい乱数でランダムな画像の順番に並び変わります。

 

まとめ

今回は重複しないランダムな画像で画面切り替えを実行してみましたが、前回の画像切り替えは昇順で表示するやり方だけだったので、重複を意識しなくてよかったので簡単でした。

今回は重複させないための処理が入ったので、その分の重複処理が若干難易度が高かった為、コードも長くなってしまいましたネ。

あとはJQueryのフェードスライドなどの動作を付加していけば、見栄えもよくなってプロみたいな感じで表示もできてくると思います。

この機会に是非ホームページやブログなどに画像切り替えの処理をして派手にかっこよく表示してもらえたら幸いです(o^^o)

以上です。

その他、下記の記事も関連した記事になりますので是非参考にしてみてください!

重複なしのランダムデータ(乱数)

setIntervalでリアルタイムに日時と曜日を表示