jqueryを使って簡単にポップアップを表示したい

ポップアップ

 

こんな感じで、jqueryを使って
①画像(Aタグあり)
を表示したい、を記事にしてみました。

 

 

 

やり方

ヘッダーにコードを追加

 

<head>タグ内に下記のコードを追加

  1. <link rel="stylesheet" href="/css/magnific-popup.css">
  2. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  3. <script src="/js/jquery.magnific-popup.js"></script>

 

<解説>
1.ポップアップ用のcssの読み込み
2.jqueryの読み込み
3.ポップアップ用javascriptの読み込み

 

 

ポップアップしたいコンテンツ

 

記事の最後に下記コードを追加

  1. <div id="popup" class="white-popup">
  2.      ポップアップしたい画像
  3. </div>

 

<解説>
id=”popup”で、ポップアップする/しない、を制御します。
class=”white-popup”でポップアップ部分の装飾をします。

 

 

ポップアップ部分のCSS

 

CSS(スタイルシート)に下記のコードを追加します。

  1. .white-popup {
  2.    position: relative;
  3.    background: #FFF;
  4.    padding: 20px;
  5.    width: auto;
  6.    max-width: 500px;
  7.    margin: 20px auto;
  8. }

 

<解説>
class=”white-popup”の装飾を定義していきます。

 

 

javascript部分

本文記事に下記のコードを追加します。

  1. <script type="text/javascript">
  2. $(window).load(function(){
  3.      $.magnificPopup.open({
  4.           items: {src: '#popup'},
  5.           type: 'inline',
  6.           modal: true,
  7.       }, 0);
  8.   });
  9. </script>

 

<解説>
2.: "$(window).load(function().." の部分は、ページ表示完了時、function()を実行します。
3~7: $.magnificPopup.open() を使ってポップアップを表示します。
 引数 
  items: ポップアップするコンテンツのIDを指定
  type:  ポップアップタイプは inline   
  modal: モーダルなので true

 

 

 

magnificPopupレファレンス

コンテント・タイプ(Content Types)

 

Magnific Popup には以下のような4つのコンテントタイプがある。URL などから自動的に検出する機能はないので、必ず指定する(デフォルトは inline )。

 

image :画像
iframe:youtubeなど
inline:通常ほHTML
ajax

 

 

コンテンツタイプ「image」

imageタイプを選択した場合は、画像へのパスをソースとして設定する必要があります。
また以下のようなimageオプションを指定することで、ポップアップのマークアップなどを変更できます。

 

 

  1. $('.image-link').magnificPopup({
  2.   type:'image',
  3.   image: {
  4.     markup: '<div class="mfp-figure">'+
  5.               '<div class="mfp-close"></div>'+
  6.               '<div class="mfp-img"></div>'+
  7.               '<div class="mfp-bottom-bar">'+
  8.                 '<div class="mfp-title"></div>'+
  9.                 '<div class="mfp-counter"></div>'+
  10.               '</div>'+
  11.             '</div>', // ポップアップのマークアップ。.mfp-imgはimgタグに、.mfp-closeはクローズボタンに置換される。
  12.   
  13.     cursor: 'mfp-zoom-out-cur', // ポップアップを表示したときのbodyタグに追加されるクラスを指定
  14.   
  15.     titleSrc: 'title', // 画像のタイトルを取得する属性を指定
  16.     // 次のものはタイトルを関数で返す例です。
  17.     // titleSrc: function(item) {
  18.     // return item.el.attr('title') + '<small>by Marsel Van Oosten</small>';
  19.     // }
  20.   
  21.     verticalFit: true, // 垂直方向に画像を収める
  22.   
  23.     tError: '<a href="%url%">The image</a> could not be loaded.' // ローディングが失敗したときのエラーメッセージ
  24.   }
  25. });

 

コンテンツタイプ「iframe」

 

iframeタイプを選択したときは「YouTube」「Vimeo」「Google Maps」のURLを指定することで、それぞれをポップアップで表示できます。

 

  1. $('.iframe-link').magnificPopup({
  2.  type:'iframe'
  3. });

 

  1. <a href="http://www.youtube.com/watch?v=画像タグ" class="iframe-link">Youtube</a>

 

コンテンツタイプ「inline」

html内の要素をポップアップで表示させます。ポップアップさせたい要素に「mfp-hide」のクラス名を付けておきます。
クラス名「mfp-close」を付けたものがクローズボタンに置換されます。

 

javascript ソース

  1. $(function() {
  2.   $('.inline-link').magnificPopup({
  3.    type:'inline'
  4.   });
  5. });

 

htmlソース

  1. <div id="inline-popup" class="mfp-hide">
  2.   <h1>タイトル</h1>
  3.   <p>テキスト</p>
  4.   <img src="画像URL" />
  5.   <div class="mfp-close">閉じる</div>
  6. </div>

 

 

 

ブログランキング・にほんブログ村へ  このエントリーをはてなブックマークに追加 

もし良ければ、押していってください。