画像をランダムに表示するJavaScript(外部ファイル化)

JS

複数の画像から指定する数の画像を表示するjavascript(以下、js)。

下記HTMLを表示したいところに設置。

HTML
<ul id="randImglist">
<script src="js/random-images.js"></script>
</ul>

※jsのパスは自分の環境に合わせる。
※スタイルは省略。任意で設定してください。

jsで吐き出されるHTML

HTML
<li>
  <a href="" target="_blank">
    <figure>
      <img src="" alt="">
    </figure>
  </a>
</li>

画像ランダム表示js

5個の画像から2個を表示するサンプルコード。
jsを外部ファイル化し、ファイル名を”random-images.js”とします。

JavaScript
document.addEventListener("DOMContentLoaded", function () {
  const list = document.getElementById("randImglist");

  // アイテム情報(URL・画像パス・代替テキスト)
  const itemsData = [
    { url: "", imgSrc: "", alt: "" },
    { url: "", imgSrc: "", alt: "" },
    { url: "", imgSrc: "", alt: "" },
    { url: "", imgSrc: "", alt: "" },
    { url: "", imgSrc: "", alt: "" }
  ];

  // 配列をシャッフルする関数(Fisher-Yatesアルゴリズム)
  function shuffle(array) {
    for (let i = array.length - 1; i > 0; i--) {
      const j = Math.floor(Math.random() * (i + 1));
      [array[i], array[j]] = [array[j], array[i]];
    }
  }

  shuffle(itemsData); // 配列をシャッフル
  const selectedItems = itemsData.slice(0, 2); // 最初の2個を取得

  // シャッフルされた2個のアイテムをリストに追加
  selectedItems.forEach(item => {
    const li = document.createElement("li");
    const a = document.createElement("a");
    const figure = document.createElement("figure");
    const img = document.createElement("img");

    a.href = item.url;
    a.target = "_blank";
    img.src = item.imgSrc;
    img.alt = item.alt;

    figure.appendChild(img);
    a.appendChild(figure);
    li.appendChild(a);
    list.appendChild(li);
  });
});

6~10行目:リンク先、画像パス、代替テキストを設定。読み込む画像を増やす場合はここを増やす。
22行目:表示する数を設定

表示デモページ