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

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

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

Q&A

解決済

1回答

3672閲覧

モーダルウィンドウでクリック時にiframeを作成したいです。

atk_3

総合スコア43

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

0グッド

0クリップ

投稿2020/02/05 11:07

javascript、jqueryでの実装経験が少なく調べながら進んでいたのですがつまづいてしまい、アドバイスいただけると嬉しいです。

iziModalというプラグインを使用しています。

##実現したいこと
・同一ページ内に複数存在するモーダルウィンドウがクリック表示される時にiframeタグを生成したい(データ属性の値をsrc=""のIDとして渡したい)
・モーダルウィンドウ表示の場合、モーダル内の動画を初期表示。モーダルウィンドウを非表示にする場合再生を停止(iframeを削除)

上記の処理を行いたいと思っております。

html

1 .mv__content__item 2 .mv__kv.izimodal-open(data-target="modal01") 3 span タイトル 4 p テキスト 5 .mv__modal#modal01 6 .mv__modal__video(data-video-id="===ID===") 7 //- iframe.mv__modal__video(src="https://www.youtube.com/embed/===ID===" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen) 8 .mv__modal__desc 9 .video__intro 10 span タイトル 11 p テキスト 12

javascript

1import $ from 'jquery'; 2import iziModal from 'izimodal'; 3 4/** 5 * @constructor 6 */ 7 8export default class Modal { 9 constructor() { 10 $.fn.iziModal = iziModal; 11 this.dom = $(".mv__content") 12 this.modalTriger = $(".izimodal-open") 13 this.modalE(); 14 } 15 16 modalE() { 17 $(".mv__content").each(()=> { 18 this.modalTriger.on("click",(e) => { 19 e.preventDefault(); 20 this.target = this.modalTriger.data('target') 21 this.modal = $(`#${this.target}`) 22 this.modalVideo = $(".mv__modal__video") 23 24 //iframeの作成 25 this.modalVideo.append('<iframe src="https://www.youtube.com/embed/===ID===" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>') 26 27 this.modal.iziModal("open") 28 }); 29 }); 30 this.modalSetting(); 31 } 32 modalSetting() { 33 $(".mv__modal").iziModal({ 34 width: '100%', 35 transitionIn: 'fadeInUp', 36 transitionOut: 'fadeOutDown' 37 }); 38 } 39} 40

append()でモーダルの表示前に追加できるのでは?と思いましたが追加がされずとなっております。

アドバイスお願いしたいです。

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

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

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

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

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

guest

回答1

0

自己解決

javascript

1import $ from 'jquery'; 2import iziModal from 'izimodal'; 3 4/** 5 * @constructor 6 */ 7 8export default class Modal { 9 constructor() { 10 $.fn.iziModal = iziModal; 11 this.thumbBtn = $('.video-thumb'); 12 13 this.ClickEvent(); 14 } 15 16 ClickEvent() { 17 this.thumbBtn.on('click', (e) => { 18 this.data = $(e.currentTarget).data('video'); 19 if (this.data === 'video-001') { 20 e.preventDefault(); 21 $('#video001-detail').iziModal('open', this); 22 } 23 else { 24 return false; 25 } 26 }); 27 $('#video001-detail').iziModal({ 28 iframe: true, 29 iframeURL: 'https://www.youtube.com/embed/XFGcKY1SEm0?loop=1&playlist=XFGcKY1SEm0' 30 }); 31 } 32}

html

1 2<div class="video"> 3 <span class="video-ttl">VIDEO TITLE</span> 4 <div class="video-thumb" data-video="video-001"><img src="../img/modal-video-thumb.jpg" alt="" /></div> 5 <div class="video-modal_detail" id="video001-detail"> 6 <div class="close-btn"><a data-izimodal-close="">×</a></div> 7 </div> 8</div>

モーダルをクリックした際にe.currentTargetで要素を取得して実現できました。

投稿2021/06/03 13:13

atk_3

総合スコア43

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問