当サイトでは一部のページにアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。

【javascript】リロードする度に画像が変わるバナー

javascript

ECサイトやアフィリエイトサイトを運営していると「ユーザーが訪問する度に違うバナーを表示させたい」というような場面があるかと思います。

アプローチの方法はいくつかあると思いますが、今回は最もシンプルな仕組みで使い勝手の良い方法をご紹介します。

ワードプレスの固定ページや投稿ページに、リロードする度に画像が変わるバナーを直接設置できますよ。

結果の確認方法。

Web上に表示させると、以下のように見えます。

何度か画面をリロードして表示が変化することを確認してみてください。

    HTML

    <ul id="addbanner"></ul>
    

    HTMLはたったの1行。

    idの名称は任意で問題ありません。上記では「addbanner」としている部分です。

    javascript

    <script>
      let list = [
      '<li><a rel="nofollow" href="リンク①" target="_blank"><img src="画像①"></a></li>',
      '<li><a rel="nofollow" href="リンク②" target="_blank"><img src="画像②"></a></li>',
      '<li><a rel="nofollow" href="リンク③" target="_blank"><img src="画像③"></a></li>',
      '<li><a rel="nofollow" href="リンク④" target="_blank"><img src="画像④"></a></li>',
    ];
    
    let listNum = list.length;
    let randomNum = Math.floor(Math.random() * listNum);
    let randomList = list[randomNum];
    document.getElementById("addbanner").innerHTML = randomList;
    </script>
    

    まず「let list」の部分に表示させたいバナーの画像や、とび先のリンクを配列として格納します。

    上記では4つのバナーをリストにしていますが、任意の数に増減が可能です。

    また、数を変化させても他の部分をいじる必要がないシンプルな設計です。

    次に「let listNum」の部分でリストの要素数を取得します。

    「let randomNum」はバナーをランダムに表示させるための内容です。リロードする度に0からリストの要素数-1までの整数をランダムに生成しています。

    「let randomList」は「let randomNum」で生成された整数に対応するリストの要素を取得しています。

    最後の行では「randomList」で取得した要素を<ul id=”addbanner”>に挿入しています。

    まとめ

    以上がリロードする度に画像が変わるバナーを設置する方法になりますが、いかがでしたでしょうか。

    特にECサイトなどではよく見る表現ですが、上記は数ある方法の中でも特に扱いやすいシンプルな形かと思います。

    バナーの他にもサイト訪問の度に絵変わりするヒーロー画像とか、いろいろな用途に使えると思いますので、知識として頭の片隅に置いておくと良いかもしれません。

    この記事がどなたかのお役に立てたら幸いです。

    javascriptのスキルアップを目指す方へおすすめの書籍


    javascriptの教本を選ぶ時のポイントはいくつかありますが、まずは絶対的に発売日が新しいものを選ぶことをオススメします。

    書籍の場合は執筆時点で最新の情報だったとしても、発売までの間どうしても月日が経過してしまうので、なるべく最新の教本から選ぶようにしましょう。

    上記の『Webエンジニアを育てる学校』は2024年03月04日に発売されたばかりの最新本です。(記事執筆時点)

    対象は初心者~中級者くらいになりますが、技術の偏っている上級者にもぜひ一読してもらいたい一冊です。

    特にベテランになればなるほど、頭の中にあるコードだけで書いてしまうこともあると思うので、思い返しや新しい気付きがあると思います。

    javascript
    タイトルとURLをコピーしました