// // ■使い方 // 1.適当なフォルダにこのmodal.jsを設置する // 2.htmlでなどして読み込み // 3.var modalOptions = { // close_modal: function(modal_id) { // $(modal_id).remove(); // } // みたいな感じに、modaloptionを定義する。定義できるオプションは、defaultsの項目を参照。 // 4.modal_css.cssなど適当なファイル名で、モーダルウィンドウのスタイルを定義する。 //  スタイルを定義しているのは、#modal_window{}である。 // 5.オブジェクト.leanModal();する。 // // ■引数 // overlay:モーダルの後ろの背景の透明度 // close_modal:モーダルを閉じたときに行う処理 // // ■注意事項 // ・このコードは、両端にマージンを等分入れるようなロジックになっている。 // その辺を調整したいときは、改変すること。 // ・オーバーレイのスタイルは外部で定義している。 //  変更する場合、#lean_overlay{}に対してスタイルを記述するとよい。 // // leanModal v1.1 by Ray Stone - http://finelysliced.com.au // Dual licensed under the MIT and GPL // // (function($) { $.fn.extend({ leanModal: function(options) { var defaults = { overlay: 0.5, close_modal: function(modal_id) { $(modal_id).css({ "display": "none" }); } }; options = $.extend(defaults, options); if ($("#lean_overlay").length === 0) { var overlay = $("
"); $("body").append(overlay); } return this.each(function() { var o = options; var modal_id = $(this); $("#lean_overlay").click(function() { close_modal(modal_id); }); $(o.closeButton).click(function() { close_modal(modal_id); }); $(window).resize(function() { calculate_Leftmargin(modal_id); }); $("#lean_overlay").fadeTo(200, o.overlay); calculate_Leftmargin(modal_id); $(modal_id).fadeTo(200, 1); }); function close_modal(modal_id) { $("#lean_overlay").fadeOut(200); var o = options; o.close_modal(modal_id); } //モーダルが画面中央にくるように、左に挿入するマージンの数値を再計算する。 function calculate_Leftmargin(modal_id) { var leftMargin = ($("body").innerWidth() - $(modal_id).outerWidth()) / 2; (modal_id).css("margin-left", leftMargin); } } }); })(jQuery); (function($) { $(function() { $("#modal_window").hide(); $(".modal_open").click(function() { //モーダル内容を切り替える var modalType = $(this).data("modal"); $("#modal_window").removeClass(); $("#modal_window").addClass(modalType); //以下通常通り var modalOptions = { closeButton : $("#modal_close_btn"), close_modal: function(modal_id) { $(modal_id).hide(); } }; $("#modal_window").leanModal(modalOptions); }); }); })(jQuery);