-
ID:qKhdpc さんの質問

jOueryでのモーダルウィンドウでコンテンツ部分が表示されません。
こちらのサイト(ttp://coolwebwindow.com/jquery-lab/archives/304)を参考に、以下のようなソースを書きましたが、オーバーレイは表示されるものの、肝心のコンテンツ部分(.modal_content)が表示されません。
また、リンクの箇所で、p要素でaを囲んでいるとリンクがクリックできないのですが、p要素を外すとオーバーレイが表示されます。
これはなぜでしょうか。
おわかりの方がいらっしゃいましたら、教えていただきたいです。

----- HTML -----
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>test</title>
<link rel="stylesheet" href="stylesheet.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<div>
 <p><a class="modal_open" data-target="con1">リンク1</a></p>
  <div class="modal_content con1">
   <p>コンテンツ1コンテンツ1コンテンツ1コンテンツ1</p>
   <p><a class="modal_close">閉じる</a></p>
</div>
<div>
 <p><a class="modal_open" data-target="con2">リンク2</a></p>
  <div class="modal_content con2">
   <p>コンテンツ2コンテンツ2コンテンツ2コンテンツ2</p>
   <p><a class="modal_close">閉じる</a></p>
</div>
</body>
</html>

----- CSS -----
.modal_content {
 position:fixed;
 display:none;
 z-index:2;
 width:50%;
 margin:0;
 background:#fff;
}
.modal-overlay {
 z-index:1;
 display:none;
 position:fixed;
 top:0;
 left:0;
 width:100%;
 height:120%;
 background-color:rgba(0,0,0,0.75);
}

jQueryの部分はコメント欄に記載します。

みんなの回答 2 件

ID:qKhdpc さんの回答

----- jQuery -----
$(function(){
 $(".modal_open").click(function(){
  $("body").append(’<div id = "modal_overlay"></div>’);
  $("#modal_overlay").fadeIn("slow");

  var modal = ’.’ + $(this).attr(’data-target’);
  modalAppear();

  $("#modal_overlay, .modal_close").click(function(){
  $(".modal_content, #modal_overlay").fadeOut("slow", function(){
  $("#modal_overlay").remove();
  });
 });

  $(window).on("load resize", function(){
  modalAppear();
  });

  function modalAppear() {

  var w = $(window).width();
  var h = $(window).height();
  var cw = $(w - $(".modal_content").outerWidth({margin:true})) / 2;
  var ch = $(h - $(".modal_content").outerHeight({margin:true})) / 2;
  $(modal).css({"left": cw + "px", "top": ch + "px"}).fadeIn("slow");
  }
 });
});

よろしくお願いします。

ID:nzEM/h さんの回答

当該記事を書いた、CoolWebWindowの管理人、vanillaと申します。
この度は、当記事をご参考くださり、誠にありがとうございます。

提示されているソースコードで試してみましたが、仰っている

>オーバーレイは表示されるものの、肝心のコンテンツ部分(.modal_content)が表示されません。
>また、リンクの箇所で、p要素でaを囲んでいるとリンクがクリックできないのですが、p要素を外すとオーバーレイが表示されます。

というのを再現できませんでした。

一応、「リンク1」をクリックすると「コンテンツ1コンテンツ1(省略)閉じる」というテキストが表示されました。
間違いが有るとすれば、jQueryでは「#modal_overlay」と記述しているのに、CSSでは「.modal-overlay」と記述している点でしょうか。

よろしければ、HTMLファイルをメールで送っていたければ内容を見ますよ。
ここで提示されているのは実際のソースコードとは若干異なるので、的確なアドバイスが出来ません。
メールアドレスはCoolWebWindowのサイトに明示しております。

よろしくお願いいたします。

最終更新日:2014-12-12 (4,618 views)

関連するトピックス

ページ上部に戻る