jQueryのプラグインizimodalを使って、複数の内容をグループ化し、表示させるページを制作したいと考えています。
izimodalは通常通り動きましたが、
- クリックしたコンテンツの画像を表示させる。
- 表示したモーダルウィンドウをグループ間でスライドさせる。
の2点の動作を追加したところ、クリックした後、画像を表示させたい箇所が複数あるためか、
クリックしたコンテンツのモーダルウィンドウではなく、グループ化した1番最初の画像が常に表示されてしまいました。
HTML
1 <li class="work_con work_ban" id="banner"> 2 <h2 class="work_sub-tit">BANNER</h2> 3 <div class="work_itm-wrap"> 4 <ul class="work_itm"> 5 <li class="work_itm-each" data-iziModal-open=".iziModal" data-izimodal-zindex="20000" data-izimodal-preventclose=""> 6 <img class="work_ban1 img" src="images/banner1.png" alt="banner1"> 7 </li> 8 <div id="modal-default" class="iziModal" data-izimodal-title="title" data-izimodal-subtitle="subtitle"> 9 <figure style="text-align:center;"><img class="iziModal_img" src="images/banner1_o.jpg" alt="banner1" /></figure> 10 <p class="iziModal_word">text</p> 11 </div> 12 <li class="work_itm-each" data-iziModal-open=".iziModal" data-izimodal-zindex="20000" data-izimodal-preventclose=""> 13 <img class="work_ban2 img" src="images/banner2_1.png" alt="banner2"> 14 </li> 15 <div id="modal-default" class="iziModal" data-izimodal-title="title" data-izimodal-subtitle="subtitle"> 16 <figure style="text-align:center;"><img class="iziModal_img" src="images/banner2_o.png" alt="banner2" /></figure> 17 <p class="iziModal_word">text</p> 18 </div> 19 </ul> 20 </div> 21 </li> 22
jQuery
1 2 $(document).on('click', '.open-default', function(event) { 3 event.preventDefault(); 4 $('#modal-default').iziModal('open',this); 5 }); 6 $('#modal-default').iziModal(); 7 $('.iziModal',this).iziModal({ 8 group: "group01", 9 loop: true, 10 headerColor: "rgba(5,41,88,0.8)", 11 padding:20, 12 borderBottom:false, 13 radius:0, 14 closeButton:false, 15 background:"rgb(246,246,246)", 16 title:"#f6f6f6", 17 subtitle:"#f6f6f6", 18 navigateCaption:"#052958", 19 }); 20
クリックしたコンテンツの情報を表示するためには、上記コード以外に追加する記述が必要でしょうか?
ご回答よろしくお願いします。
【制作環境】
エディタ:Visual Studio Code
言語:HTML5、CSS3、jQuery2.2.4
【izimodalのopenに関する記述】
jQuery
1 open: function (param) { 2 3 var that = this; 4 5 try { 6 if(param !== undefined && param.preventClose === false){ 7 $.each( $('.'+PLUGIN_NAME) , function(index, modal) { 8 if( $(modal).data().iziModal !== undefined ){ 9 var state = $(modal).iziModal('getState'); 10 11 if(state == 'opened' || state == 'opening'){ 12 $(modal).iziModal('close'); 13 } 14 } 15 }); 16 } 17 } catch(e) { /*console.warn(exc);*/ } 18 19 (function urlHash(){ 20 if(that.options.history){ 21 22 var oldTitle = document.title; 23 document.title = oldTitle + " - " + that.options.title; 24 changeHashWithoutScrolling('#'+that.id); 25 document.title = oldTitle; 26 //history.pushState({}, that.options.title, "#"+that.id); 27 28 window.$iziModal.history = true; 29 } else { 30 window.$iziModal.history = false; 31 } 32 })(); 33 34 function opened(){ 35 36 // console.info('[ '+PLUGIN_NAME+' | '+that.id+' ] Opened.'); 37 38 that.state = STATES.OPENED; 39 that.$element.trigger(STATES.OPENED); 40 41 if (that.options.onOpened && ( typeof(that.options.onOpened) === "function" || typeof(that.options.onOpened) === "object" ) ) { 42 that.options.onOpened(that); 43 } 44 } 45 46 function bindEvents(){ 47 48 // Close when button pressed 49 that.$element.off('click', '[data-'+PLUGIN_NAME+'-close]').on('click', '[data-'+PLUGIN_NAME+'-close]', function (e) { 50 e.preventDefault(); 51 52 var transition = $(e.currentTarget).attr('data-'+PLUGIN_NAME+'-transitionOut'); 53 54 if(transition !== undefined){ 55 that.close({transition:transition}); 56 } else { 57 that.close(); 58 } 59 }); 60 61 // Expand when button pressed 62 that.$element.off('click', '[data-'+PLUGIN_NAME+'-fullscreen]').on('click', '[data-'+PLUGIN_NAME+'-fullscreen]', function (e) { 63 e.preventDefault(); 64 if(that.isFullscreen === true){ 65 that.isFullscreen = false; 66 that.$element.removeClass('isFullscreen'); 67 } else { 68 that.isFullscreen = true; 69 that.$element.addClass('isFullscreen'); 70 } 71 if (that.options.onFullscreen && typeof(that.options.onFullscreen) === "function") { 72 that.options.onFullscreen(that); 73 } 74 that.$element.trigger('fullscreen', that); 75 }); 76 77 // Next modal 78 that.$navigate.off('click', '.'+PLUGIN_NAME+'-navigate-next').on('click', '.'+PLUGIN_NAME+'-navigate-next', function (e) { 79 that.next(e); 80 }); 81 that.$element.off('click', '[data-'+PLUGIN_NAME+'-next]').on('click', '[data-'+PLUGIN_NAME+'-next]', function (e) { 82 that.next(e); 83 }); 84 85 // Previous modal 86 that.$navigate.off('click', '.'+PLUGIN_NAME+'-navigate-prev').on('click', '.'+PLUGIN_NAME+'-navigate-prev', function (e) { 87 that.prev(e); 88 }); 89 that.$element.off('click', '[data-'+PLUGIN_NAME+'-prev]').on('click', '[data-'+PLUGIN_NAME+'-prev]', function (e) { 90 that.prev(e); 91 }); 92 }
プラグイン/ライブラリは公式配布サイトのURLを質問文に追記ください。(URLにはリンクを張ることができます)また、「#modal-default」のHTMLも提示してください。

回答2件
あなたの回答
tips
プレビュー