クリックイベントで画像タブギャラリーを作成しようとしています

ジェレミーマーク

W3Schoolsには、画像タブギャラリーを作成するために使用しているがあります。

プレーンJSを使用した彼らの例と私はjQueryを使用しようとしています。jQueryの使用は初めてですが、コンソールで画像を取得するように見える関数がありますが、選択した画像imgはIDが#expandedImg。の要素には表示されません

何が悪いのか、なぜクリックした画像がレンダリングされないのか理解できないようです。ご指導をいただければ幸いです。ありがとう。

$(document).ready(function() {
    $(".column img").click(function() {
      var newclass = $(this).attr("src");
      console.log(newclass);
      var oldclass = $("#expandedImg").attr("id");
      console.log(oldclass);

      $("#expandedImg").fadeOut(function() {
        $("#expandedImg").removeClass(oldclass).addClass(newclass).fadeIn("slow");
        console.log(newclass);
      });
    });
  });
/* The grid: Four equal columns that floats next to each other */

.column {
  float: left;
  width: 20%;
  padding: 10px;
}


/* Style the images inside the grid */

.column img {
  opacity: 0.8;
  cursor: pointer;
}

.column img:hover {
  opacity: 1;
}


/* Clear floats after the columns */

.row:after {
  content: "";
  display: table;
  clear: both;
}


/* The expanding image container */

.container {
  position: relative;
  display: none;
  width: 50%;
}


/* Closable button inside the expanded image */

.closebtn {
  position: absolute;
  top: 10px;
  right: 15px;
  color: white;
  font-size: 35px;
  cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Image Gallery</title>
  <link rel="stylesheet" type="text/css" href="styles.css" />
  <link href="../jquery-ui/jquery-ui.min.css" rel="stylesheet" type="text/css" />
  <script src="../jquery-ui/external/jquery/jquery.js" type="text/javascript"></script>
  <script src="../jquery-ui/jquery-ui.min.js" type="text/javascript"></script>
</head>

<body>
  <!-- The four columns -->
  <div class="row">
    <div class="column">
      <img src="../images/trees_mountains.jpg" alt="Nature" style="width:100%">
    </div>
    <div class="column">
      <img src="../images/snow_mountains.jpg" alt="Snow" style="width:100%">
    </div>
    <div class="column">
      <img src="../images/mountain_landscape.jpg" alt="Mountains" style="width:100%">
    </div>
    <div class="column">
      <img src="../images/skylights.jpg" alt="Lights" style="width:100%">
    </div>
  </div>

  <div class="container">
    <span onclick="this.parentElement.style.display='none'" class="closebtn">&times;</span>
    <img id="expandedImg" style="width:100%" />
  </div>
</body>

</html>

twoK

内部に画像を含むコンテナ全体display: noneがCSSで非表示になっています。

.container {
  position: relative;
  display: none;
  width: 50%;
}

最初に表示する必要があります。

$(".container").show()

また、とを使用removeClassaddClassて新しい画像ソースを追加しています。removeClassそしてaddClass、CSSクラスを追加および削除するためだけのものであり、他には何もありません。

保存されている、あなたのデータnewclassおよびoldclassCSSクラスではありません、これらの値と値を持つ変数は、の場合の画像のソースされているnewclass、あなただけという変数newclass名で。

ソースを取得するのと同じ方法でソースを追加し、変数からの値を入力する必要があります。

$("#expandedImg").attr('src', newclass)

$(document).ready(function() {
  $(".column img").click(function() {
    console.clear();
    var newclass = $(this).attr("src");
    console.log(newclass);
    var oldclass = $("#expandedImg").attr("id");
    console.log(oldclass);

    $(".container").show();
    // show .container

    $("#expandedImg").attr('src', newclass).hide().fadeIn("slow");
    //set new source and hide element in order to be able to fade it in again
    // fade in works only on hidden elements

  });
});
/* The grid: Four equal columns that floats next to each other */

.column {
  float: left;
  width: 20%;
  padding: 10px;
}


/* Style the images inside the grid */

.column img {
  opacity: 0.8;
  cursor: pointer;
}

.column img:hover {
  opacity: 1;
}


/* Clear floats after the columns */

.row:after {
  content: "";
  display: table;
  clear: both;
}


/* The expanding image container */

.container {
  position: relative;
  display: none;
  width: 50%;
}


/* Closable button inside the expanded image */

.closebtn {
  position: absolute;
  top: 10px;
  right: 15px;
  color: white;
  font-size: 35px;
  cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Image Gallery</title>
  <link rel="stylesheet" type="text/css" href="styles.css" />
  <link href="../jquery-ui/jquery-ui.min.css" rel="stylesheet" type="text/css" />
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

  <script src="../jquery-ui/jquery-ui.min.js" type="text/javascript"></script>
</head>

<body>
  <!-- The four columns -->
  <div class="row">
    <div class="column">
      <img src="https://pmcvariety.files.wordpress.com/2019/12/baby-yoda-plush-toy-mattel-the-mandalorian.png?w=1000&h=563&crop=1" alt="Nature" style="width:100%">
    </div>
    <div class="column">
      <img src="https://i.kinja-img.com/gawker-media/image/upload/t_original/oicrsr3wwqi6u3buvvxx.jpg" alt="Snow" style="width:100%">
    </div>
    <div class="column">
      <img src="https://images2.minutemediacdn.com/image/upload/c_crop,h_1224,w_2177,x_80,y_0/f_auto,q_auto,w_1100/v1574876645/shape/mentalfloss/609512-disney_0.jpg" alt="Mountains" style="width:100%">
    </div>
    <div class="column">
      <img src="https://static1.srcdn.com/wordpress/wp-content/uploads/2019/12/Baby-Yoda-in-The-Mandalorian-Chapter-4.jpg" alt="Lights" style="width:100%">
    </div>
  </div>

  <div class="container">
    <span onclick="this.parentElement.style.display='none'" class="closebtn">&times;</span>
    <img id="expandedImg" style="width:100%" />
  </div>
</body>

</html>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ポップアップブートストラップを使用してシンプルな画像ギャラリーを作成しようとしています

分類Dev

オブジェクトを選択してjsでクリックイベントを追加しようとするとエラーが発生します

分類Dev

オブジェクトを選択してjsでクリックイベントを追加しようとするとエラーが発生します

分類Dev

Ansibleプレイブックで「with_items」と「when」を使用してリポジトリのクローンを作成しようとしています

分類Dev

ffmpegを使用してスクリーンショットギャラリー/モザイクを出力するにはどうすればよいですか?

分類Dev

ギャラリーから新しいディレクトリ(app_name)に画像を保存しようとしています

分類Dev

ジャージー:クエリパラメータと画像を含むクライアントを使用してPOSTリクエストを作成するにはどうすればよいですか?

分類Dev

クリックイベントでモーダル背景を削除しようとしています

分類Dev

アップロードボタンのクリック時にカメラ、ギャラリーを選択してオプションを選択し、キャンセルしてダイアログまたはアクションセットを表示するにはどうすればよいですか?

分類Dev

ボタンをクリックして、特定のファンシーボックスギャラリーから特定のギャラリーアイテムを開くにはどうすればよいですか?

分類Dev

FlexSlider / WooCommerce単一製品画像ギャラリー:カラーピッカーから注目の画像変更をトリガーしようとしています

分類Dev

PowerShellスクリプトにキャリッジリターンを追加しようとしています

分類Dev

Gitエラー:リモートアンパックに失敗しました:一時オブジェクトディレクトリを作成できません-リモートリポジトリにプッシュしようとしています

分類Dev

TYPO3 LTS9の画像フォルダギャラリーでサムネイルをトリミングして正方形にし、クリックしても元の画像が残っています-拡大しますか?

分類Dev

ナビゲーションと画像ギャラリーを使用してシンプルなレスポンシブレイアウトを作成するにはどうすればよいですか?

分類Dev

ブーストメモリマップファイル内にベクトル値を使用してC ++マップを作成しようとしています

分類Dev

Pythonでリンクリストをクイックソートしようとしています

分類Dev

単一の画像に対してhtmlまたはjavascriptでライトボックスギャラリーをトリガーするにはどうすればよいですか?

分類Dev

モーダル画像ギャラリーをどのように作成しますか?クエリなし

分類Dev

Git:親リポジトリから分割せずにプライベートリポジトリのサブフォルダをパブリックリポジトリとして作成するにはどうすればよいですか?

分類Dev

jsで「クリック」イベントをトリガーしようとしても機能しません

分類Dev

私はボタンをクリックして.exeファイルを実行して、/ wとしてインストールできるインターフェイスを作成しようとしています

分類Dev

クリックイベントを使用してテーブルでバリューラジオを取得するにはどうすればよいですか?

分類Dev

クリックイベントを使用してテーブルでバリューラジオを取得するにはどうすればよいですか?

分類Dev

max7219なしでラズベリーパイを使用して8x8LEDマトリックスを制御しようとしています

分類Dev

親がパブリックの場合、どのようにして子コンストラクターをプライベートにしますか?

分類Dev

Spring Bootでリクエスト用の「一般的な」ロギングソリューションを作成しようとしています

分類Dev

ユーザー入力でマトリックスを作成しようとすると、コンパイル エラーが発生します。ジャバ

分類Dev

ServiceStackは、パブリックプロパティではなくサービス参照を介して生成されたプライベートフィールドクラスをバインドしようとしています

Related 関連記事

  1. 1

    ポップアップブートストラップを使用してシンプルな画像ギャラリーを作成しようとしています

  2. 2

    オブジェクトを選択してjsでクリックイベントを追加しようとするとエラーが発生します

  3. 3

    オブジェクトを選択してjsでクリックイベントを追加しようとするとエラーが発生します

  4. 4

    Ansibleプレイブックで「with_items」と「when」を使用してリポジトリのクローンを作成しようとしています

  5. 5

    ffmpegを使用してスクリーンショットギャラリー/モザイクを出力するにはどうすればよいですか?

  6. 6

    ギャラリーから新しいディレクトリ(app_name)に画像を保存しようとしています

  7. 7

    ジャージー:クエリパラメータと画像を含むクライアントを使用してPOSTリクエストを作成するにはどうすればよいですか?

  8. 8

    クリックイベントでモーダル背景を削除しようとしています

  9. 9

    アップロードボタンのクリック時にカメラ、ギャラリーを選択してオプションを選択し、キャンセルしてダイアログまたはアクションセットを表示するにはどうすればよいですか?

  10. 10

    ボタンをクリックして、特定のファンシーボックスギャラリーから特定のギャラリーアイテムを開くにはどうすればよいですか?

  11. 11

    FlexSlider / WooCommerce単一製品画像ギャラリー:カラーピッカーから注目の画像変更をトリガーしようとしています

  12. 12

    PowerShellスクリプトにキャリッジリターンを追加しようとしています

  13. 13

    Gitエラー:リモートアンパックに失敗しました:一時オブジェクトディレクトリを作成できません-リモートリポジトリにプッシュしようとしています

  14. 14

    TYPO3 LTS9の画像フォルダギャラリーでサムネイルをトリミングして正方形にし、クリックしても元の画像が残っています-拡大しますか?

  15. 15

    ナビゲーションと画像ギャラリーを使用してシンプルなレスポンシブレイアウトを作成するにはどうすればよいですか?

  16. 16

    ブーストメモリマップファイル内にベクトル値を使用してC ++マップを作成しようとしています

  17. 17

    Pythonでリンクリストをクイックソートしようとしています

  18. 18

    単一の画像に対してhtmlまたはjavascriptでライトボックスギャラリーをトリガーするにはどうすればよいですか?

  19. 19

    モーダル画像ギャラリーをどのように作成しますか?クエリなし

  20. 20

    Git:親リポジトリから分割せずにプライベートリポジトリのサブフォルダをパブリックリポジトリとして作成するにはどうすればよいですか?

  21. 21

    jsで「クリック」イベントをトリガーしようとしても機能しません

  22. 22

    私はボタンをクリックして.exeファイルを実行して、/ wとしてインストールできるインターフェイスを作成しようとしています

  23. 23

    クリックイベントを使用してテーブルでバリューラジオを取得するにはどうすればよいですか?

  24. 24

    クリックイベントを使用してテーブルでバリューラジオを取得するにはどうすればよいですか?

  25. 25

    max7219なしでラズベリーパイを使用して8x8LEDマトリックスを制御しようとしています

  26. 26

    親がパブリックの場合、どのようにして子コンストラクターをプライベートにしますか?

  27. 27

    Spring Bootでリクエスト用の「一般的な」ロギングソリューションを作成しようとしています

  28. 28

    ユーザー入力でマトリックスを作成しようとすると、コンパイル エラーが発生します。ジャバ

  29. 29

    ServiceStackは、パブリックプロパティではなくサービス参照を介して生成されたプライベートフィールドクラスをバインドしようとしています

ホットタグ

アーカイブ