Webサイト制作

投稿日:2024年4月3日 更新日:

画像の拡大表示(ポップアップ)

やりたいこと

画像のポップアップがしたい!

タグを設置

html内であればどこでも良いので、ポップアップしたいページに以下のタグを追加する

<div id="modal-container">
    <div><img src=""></div>
</div>

画像にクラスを付与

上のタグとは別に、ポップアップしたい画像にクラスを追加する。
クラス名は任意のものを。

<img src="画像のパス" class="popup">

スクリプトを記載

jQueryを使用します。
以下のコードをページに追加します。

const modal = jQuery('#modal-container');
const img = modal.find('img');
jQuery('img.popup').each(function(index) {
jQuery(this).click(function() {
img.attr('src', jQuery(this).attr('src'));
modal.show();
})
});
modal.click(function() {
$(this).hide();
});

スタイルを記載

スタイルシートに以下コードを追記します。

#modal-container {
display: none;
position: fixed;
background: rgba(0, 0, 0, .6);
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: 9999;
}
#modal-container>div {
display: flex;
height: 100vh;
justify-content: center;
align-items: center;
}
#modal-container>div img {
max-width: calc(100vw - 30px);
max-height: calc(100vh - 30px);
}
img.popup {
cursor: pointer;
}

完成!

- Webサイト制作
-

関連記事

no image

角丸テーブルのスタイル指定

時々使うテーブルの角丸仕様、毎回調べてる気がする。。 ポイントはborder-collapse border-collapse: collapse;ではなくborder-collapse: separ ...

no image

Video要素の縦横比を変更する

目次1 やりたいこと2 原因3 対策3.1 対策13.2 対策23.3 問題点 やりたいこと Videoファイルが横長で見にくいので縦幅を調整したい 原因 Video要素のobject-fitがデフォ ...

no image

cssで作るタイトルやテキストの装飾色々メモ

目次1 タイトルの背景を斜めボーダーにしたい2 タイトルの左右に画像を配置3 タテキストにグラデーションをかけたい タイトルの背景を斜めボーダーにしたい 斜めボーダー背景。 色の組み合わせで色々な雰囲 ...

mmenuは初心者でも簡単に使えるjQuery plugin|スマホ用メニュー

スマホ用メニューを作成する時によく使っているのがjQuery pluginのmmenuあまりjQuery詳しくない私でも簡単に使えるところが気に入ってます。オプションで色々設定もできるみたいなので、初 ...

拡大してもボヤけない、アイコンフォントが便利すぎる

サイト作成の時にメニューアイコンを作っていたけど 3つのメニューのうち1つをアイコンフォント使ってたら表示の鮮明さに驚いた。 他のアイコンはpng形式の画像だったけど全然違う。 通常、画像でできたアイ ...