html 画像 クリック イベント

HTML 画像クリックイベント:クリックによるリンク遷移、拡大などの機能を実現

説明: この記事では、HTML で画像にクリックイベントを追加し、画像のクリックでリンクに飛んだり、画像を拡大したりする一般的な機能を実装する方法を詳しく説明します。JavaScript と jQuery の 2 つの方法をコード例と解説付きで紹介しますので、画像クリックイベントの適用方法を簡単に習得できます。

一、JavaScript を使用して画像クリックイベントを実現する

1.1 基本原理:

HTML の <img> タグを使って画像を挿入し、JavaScript の onclick イベントを使用して画像のクリックを監視します。クリックイベントが発生すると、指定された関数が実行され、リンク遷移や新規ウィンドウの表示、画像の拡大などの機能を実現します。

1.2 コード例:

<!DOCTYPE html>
<html>
<head>
    <title>JavaScript 画像クリックイベント</title>
</head>
<body>
    <img src="your-image.jpg" alt="画像の説明" onclick="window.location.href='https://www.example.com'">
</body>
</html>

 

コード分析:

このコードでは、ユーザーが画像をクリックすると、window.location.href='https://www.example.com' という JavaScript コードが実行され、指定されたリンクに遷移します。onclick イベントを使うことで、画像クリック時の動作を簡単にカスタマイズすることが可能です。

1.3 その他の機能の実現:

新規ウィンドウをポップアップする:

リンク先を新しいタブで開くには、window.open('https://www.example.com') を使用します。

<img src="your-image.jpg" alt="画像の説明" onclick="window.open('https://www.example.com')">

画像を拡大する:

画像をクリックして拡大表示させるには、CSS の transform プロパティと JavaScript を組み合わせて使用します。

<!DOCTYPE html>
<html>
<head>
    <title>画像の拡大表示</title>
    <style>
        img {
            transition: transform 0.25s ease;
        }
        img.enlarged {
            transform: scale(2); /* 2倍に拡大 */
        }
    </style>
</head>
<body>
    <img src="your-image.jpg" alt="画像の説明" onclick="this.classList.toggle('enlarged')">
</body>
</html>

このコードでは、画像がクリックされるたびに enlarged クラスがトグルされ、拡大・縮小が切り替わります。

要素の表示・非表示を切り替える:

特定の DOM 要素をクリックで表示・非表示にするには、JavaScript を使って要素の style.display プロパティを操作します。

<!DOCTYPE html>
<html>
<head>
    <title>表示・非表示の切り替え</title>
    <style>
        #hidden-content {
            display: none;
        }
    </style>
</head>
<body>
    <img src="your-image.jpg" alt="画像の説明" onclick="document.getElementById('hidden-content').style.display = 'block'">
    <div id="hidden-content">ここに隠しコンテンツが表示されます。</div>
</body>
</html>

このコードでは、画像をクリックすると、隠れていたコンテンツが表示されます。

二、jQuery を使用して画像クリックイベントを実現する

2.1 jQuery ライブラリの読み込み:

HTML ファイルの <head> タグ内に以下のコードを追加して、jQuery ライブラリを読み込みます。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

2.2 jQuery コード例:

<!DOCTYPE html>
<html>
<head>
    <title>jQuery 画像クリックイベント</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <img src="your-image.jpg" alt="画像の説明">
    <script>
        $(document).ready(function() {
            $("img").click(function() {
                window.location.href = "https://www.example.com"; 
            });
        });
    </script>
</body>
</html>​

コード分析:

このコードでは、jQuery の $(document).ready() メソッドを使用して、ページが完全に読み込まれた後にコードが実行されるようにしています。$("img").click(function(){...}) は、ページ内のすべての <img> 要素にクリックイベントをバインドし、ユーザーが画像をクリックすると、指定されたリンクに遷移します。

2.3 jQuery のメリット:

  • コードが簡潔で分かりやすい: jQuery は短いコードで複雑な動作を実現できるため、開発がスムーズです。
  • クロスブラウザ互換性に優れている: jQuery は異なるブラウザ間での互換性を提供し、コードの安定性が向上します。
  • アニメーション効果が簡単に実装できる: jQuery には豊富なアニメーション機能があり、画像のフェードイン・フェードアウトやスライドなどを簡単に追加できます。

三、応用例: クリックで画像をモーダル表示する

画像をクリックすると、モーダルウィンドウが開いて画像が拡大表示される機能もよく使われます。以下にその実装例を示します。

3.1 JavaScript でのモーダル実装例:

<!DOCTYPE html>
<html>
<head>
    <title>モーダル画像表示</title>
    <style>
        .modal {
            display: none;
            position: fixed;
            z-index: 1;
            padding-top: 60px;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgb(0,0,0);
            background-color: rgba(0,0,0,0.9);
        }
        .modal-content {
            margin: auto;
            display: block;
            width: 80%;
            max-width: 700px;
        }
        .close {
            position: absolute;
            top: 15px;
            right: 35px;
            color: #fff;
            font-size: 40px;
            font-weight: bold;
            transition: 0.3s;
        }
        .close:hover, .close:focus {
            color: #bbb;
            text-decoration: none;
            cursor: pointer;
        }
    </style>
</head>
<body>

<img id="myImg" src="your-image.jpg" alt="画像の説明" style="width:100%;max-width:300px">

<div id="myModal" class="modal">
    <span class="close">&times;</span>
    <img class="modal-content" id="img01">
</div>

<script>
    var modal = document.getElementById("myModal");
    var img = document.getElementById("myImg");
    var modalImg = document.getElementById("img01");

    img.onclick = function(){
        modal.style.display = "block";
        modalImg.src = this.src;
    }

    var span = document.getElementsByClassName("close")[0];
    span.onclick = function() { 
        modal.style.display = "none";
    }
</script>

</body>
</html>

コード分析:

このコードでは、画像をクリックすると、モーダルウィンドウが表示され、拡大した画像が表示されます。モーダルを閉じるための「×」ボタンも用意されており、ユーザーエクスペリエンスを向上させます。

四、まとめ

この記事では、HTML 画像にクリックイベントを追加する 2 つの方法(JavaScript と jQuery)を紹介し、シンプルなリンク遷移から複雑なインタラクション効果まで、さまざまな機能を実装する手順を詳しく説明しました。画像クリックイベントをマスターすることで、Web ページをより生き生きと面白くすることができます。

よくある質問

Q1: 画像クリックで別ページに遷移するにはどうすればよいですか?

A1: <a> タグで画像を囲み、href 属性で遷移先の URL を指定します。また、JavaScript の onclick イベントを使っても遷移が可能です。

Q2: jQuery と JavaScript のどちらを選ぶべきですか?

A2: 既に jQuery を使用しているプロジェクトでは、簡潔で書きやすい jQuery を選ぶと良いでしょう。特定の理由がない限り、新規プロジェクトでは純粋な JavaScript を使用することが推奨されます。

Q3: モーダルウィンドウを閉じる方法がわかりません。どうすればよいですか?

A3: モーダルウィンドウ内に「閉じる」ボタンを配置し、onclick イベントでモーダルの display スタイルを none に変更することで、モーダルを閉じることができます。