質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1644閲覧

Magnific Popupで表示した画像の背景が透明にならない

tkshp

総合スコア174

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/09/27 15:58

前提・実現したいこと

こちらのMagnific Popupというライブラリを使って、
画像表示を試みているのですが、クリック後に表示されるギャラリーの画像において、背景が黒色になり、
黒色のため、閉じるボタンや両矢印の切り替えボタンが表示されているかどうかもわかりません。
提示したリンク先のサンプルのように、クリック後の画像表示において、背景を半透明にするには
どういった実装をすればよいでしょうか?
ご教示よろしくお願いいたします。

試したこと

以下のようなディレクトリ構造でファイルを用意しました。

・js/jquery.magnific-popup.min.js ・js/jquery-3.6.0.min.js ・css/magnific-popup.css ・img/image1.jpg ・img/image2.jpg ・img/image3.jpg ・img/image4.jpg ・img/image5.jpg ・index.html

index.htmlを以下のように実装しました。

HTML

1<!doctype html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title></title> 6 <link rel="stylesheet" href="css/magnific-popup.css"> 7 <script src="js/jquery.magnific-popup.min.js"></script> 8 <script src="js/jquery-3.6.0.min.js"></script> 9 <script type="text/javascript"> 10 $(function(){ 11 $('parent-container').magnificPopup({ 12 type: 'image', 13 closeOnContentClick: true, 14 }); 15 }); 16 </script> 17</head> 18<body> 19 <div class="parent-container"> 20 <a href="img/image1.jpg">Open popup 1</a> 21 <a href="img/image2.jpg">Open popup 2</a> 22 <a href="img/image3.jpg">Open popup 3</a> 23 </div> 24</body> 25</html>

リンクをクリックすると、画像が中央に表示されるのですが、背景が黒色となってしまいます。

element.style { margin: 0px; background: #0e0e0e; height: 100%; }

デベロッパーツールで背景の要素を確認すると上記が効いているみたいです。

magnific-popup.cssでは、以下のような設定が書かれていたので、
おそらくopacity: 0.8で透明になるように設定されているではないかと思うのですが、
効いている様子はありません。
しかし、クリック処理で画像を表示した際に、画像が中央に表示されることなどから、
magnific-popup.css自体は効いているのではないかと考えています。

.mfp-bg { top: 0; left: 0; width: 100%; height: 100%; z-index: 1042; overflow: hidden; position: fixed; background: #0b0b0b; opacity: 0.8; }

下記のようにdisplayをblockに設定してみても、背景画像は黒いままでした。

<a href="img/image1.jpg" style="display: block;">Open popup 1</a>

また、クリックするものを画像に変えてみても、背景画像は黒いままです。

<a href="img/image1.jpg"><img src="img/image1.jpg"></a>

ご教示お願いします。

補足情報(FW/ツールのバージョンなど)

Chromeで検証

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

その読み込み順だとそもそもエラー出てるのでは?
jQuery先に読み込ませないと参照できないはずです。

あと、直接の問題点としてはセレクタの指定方法間違ってます。

$('parent-container')

クラスを指定したいなら

$('**.**parent-container')

jQueryのセレクタメモ

投稿2021/09/27 21:44

m.ts10806

総合スコア80861

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tkshp

2021/09/28 07:55

ご回答ありがとうございます。 ご指摘の通り、読み込み順の間違いによりエラーが出ていることを確認しました。 ご指摘いただいた2点を修正したら、背景が透過することが確認できました。 ご教示いただきありがとうございました。
m.ts10806

2021/09/28 09:14

「デベロッパーツールで」と質問にあったのでエラーに気づいてないのは不思議だなと思っていました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問