質問するログイン新規登録

Q&A

解決済

1回答

202閲覧

【jQuery】モーダルプラグイン『Remodal』のカスタマイズ

yus43254

総合スコア2

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2025/11/05 11:46

編集2025/11/06 01:36

0

0

実現したいこと

モーダル内の「閉じるのボタン」をLP内にある問い合わせまで飛ぶように設定したいです。
jQueryで上書きする場合どのようなコードになるでしょうか。
よろしくお願いいたします。

また、下記のような複数モーダルを使用しています。
https://125naroom.com/web/3202#%e3%83%a2%e3%83%bc%e3%83%80%e3%83%ab%e3%81%ae%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%ef%bc%88%e5%90%8c%e3%81%98%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e8%a4%87%e6%95%b0%e3%83%a2%e3%83%bc%e3%83%80%e3%83%ab%ef%bc%89

『Remodal』↓
https://vodkabears.github.io/remodal/

発生している問題・分からないこと

すでに設定されているボタンとは別にaタグでボタンを作成し、
jQueryでモーダルが閉じるように設定してみたのですが、うまく作動しないです。

該当のソースコード

HTML

1 2<section class="modal_space"> 3 <a href="#modal_02" class="btn btn_pink">詳細はこちら</a> 4 <div class="remodal" data-remodal-id="modal_02"> 5 <div class="remodal-rerative"> 6 <div data-remodal-action="cancel" class="remodal-cancel remodal-cancel_btn">×</div> 7 <p class="modal_maintitle">求人詳細</p> 8 <ul class="modal_list"> 9 <li class="modal_item"> 10 <p class="modal_title">最寄り駅</p> 11 <p class="modal_txt">東京メトロ南北線沿線</p> 12 </li> 13 <li class="modal_item"> 14 <p class="modal_title">定員数</p> 15 <p class="modal_txt">64名</p> 16 </li> 17 <li class="modal_item"> 18 <p class="modal_title">勤務時間</p> 19 <p class="modal_txt">13:00 ~ 18:00/13:30 ~ 18:30</p> 20 </li> 21 <li class="modal_item"> 22 <p class="modal_title">勤務日</p> 23 <p class="modal_txt">月~金/週1 ~ 2日</p> 24 </li> 25 <li class="modal_item"> 26 <p class="modal_title">担当業務</p> 27 <p class="modal_txt">フリー、保育補助</p> 28 </li> 29 <li class="modal_item"> 30 <p class="modal_title">待遇</p> 31 <p class="modal_txt">有給休暇・産育休あり・交通費全額支給・社会保険完備</p> 32 </li> 33 </ul> 34 </div> 35 <button data-remodal-action="cancel" class="remodal-cancel">閉じる</button> 36 </div> 37 </section>

CSS

1/* modal */ 2.btn { 3 display: flex; 4 justify-content: center; 5 align-items: center; 6 width: 240px; 7 height: 38px; 8 box-sizing: border-box; 9 text-decoration: none; 10 transition-duration: 0.3s; 11 font-family: "M PLUS Rounded 1c", sans-serif; 12 font-size: 1rem; 13 font-weight: 600; 14 color: #f68210; 15 border: 2px solid #f68210; 16 background: transparent; 17 text-align: center; 18 border-radius: 20px; 19 position: relative; 20 top: -119px; 21 margin: 0 auto; 22} 23.btn:hover { 24 background: #b4b1a0; 25 color: #ffffff; 26} 27 28.btn_pink{ 29 color: #fd5a56; 30 border: 2px solid #fd5a56; 31} 32 33.remodal { 34 position: relative; 35 padding: 35px; 36} 37.remodal img { 38 width: 100%; 39 height: auto; 40 vertical-align: top; 41} 42.remodal-cancel { 43 color: #fff; 44 background: #f68210; 45 width: 100%; 46 margin-top: 25px; 47} 48.remodal-cancel:hover { 49 background: #333; 50} 51 52.remodal-cancel_btn{ 53 position: absolute; 54 top: -2%; 55 left: 75%; 56 font-size: 1rem; 57 color: #fff; 58 background: #f68210; 59 width: 0%; 60 text-align: center; 61} 62 63.modal_space{ 64 margin-bottom: -70px; 65} 66 67.modal_maintitle{ 68 font-family: "M PLUS Rounded 1c", sans-serif; 69 font-size: 1.4rem; 70 font-weight: 700; 71 color: #f68210; 72 text-align: left; 73} 74 75.modal_title{ 76 font-family: "M PLUS Rounded 1c", sans-serif; 77 font-size: 1.2rem; 78 font-weight: 550; 79 color: #f68210; 80} 81 82.modal_txt{ 83 font-family: "M PLUS Rounded 1c", sans-serif; 84 font-size: 1rem; 85 font-weight: 500; 86 color: #54393d; 87 margin-top: 10px; 88} 89 90.modal_list{ 91 margin: 10px 0px; 92} 93 94.modal_item{ 95 margin-top: 20px; 96 text-align: left; 97} 98 99.modal_item::after{ 100 content: ""; 101 width: 100%; 102 height: 1px; 103 background-color: #f68210; 104 display: block; 105 margin-top: 5px; 106} 107 108```jQueryはRemodalのremodal.min.jsを使用 109 110### 試したこと・調べたこと 111- [x] teratailやGoogle等で検索した 112- [ ] ソースコードを自分なりに変更した 113- [ ] 知人に聞いた 114- [ ] その他 115 116##### 上記の詳細・結果 117『Remodal』のボタンカスタマイズは出てきませんでした。 118 119### 補足 120特になし

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

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

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

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

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

maisumakun

2025/11/05 14:15

実際に書いてみたコードをご提示いただけますか?
Lhankor_Mhy

2025/11/06 00:57

『モーダル内の「閉じるのボタン」をLP内にある問い合わせまで飛ぶように設定したい』とのことですが、通常の閉じる動作は起こらないようにして、その代わりに問い合わせまで飛ぶようにしたい、という理解であっていますか?
yus43254

2025/11/06 01:27

コード追加いたしました! jQueryは実装できているのですが、コードが見れないです... お手数をおかけしますが、ご教示いただけますと幸いです!
yus43254

2025/11/06 01:30

Lhankor_Mhyさん ご認識の通りです! 代わりの問い合わせボタンでモーダルを閉じるようにJSで設定しても上手くいかず...
Lhankor_Mhy

2025/11/06 02:31

試してみましたが、モーダルが開いているとスクロールができないようにCSSが書かれているようでした。また、黒いバックドロップも表示されているようです。 ですので、モーダルが閉じる動作を起こらないようにしてその代わりに問い合わせまで飛ぶようにしたい、というのはできないこともないと思うのですが、Remodal の標準的な動作からかなり外れることになると思います。モーダルを閉じた後にスクロールさせた方が無難なような気がします。 ご希望の動作をもう一度整理してみてはどうでしょうか?
yus43254

2025/11/06 03:40 編集

ご確認いただきありがとうございます...! クライアントの意向で「問い合わせ」につながるLPにしたいので、 「モーダルが閉じる動作を起こらないようにしてその代わりに問い合わせまで飛ぶようにしたい」 OR 「モーダルが閉じて、問い合わせまで飛ぶようにしたい」 上記を実装したいという内容でした。 『Remodal』のJSである、remodal.min.jsの中身が見れれば「モーダルを閉じる」jsコードに 「お問い合わせボタン」のクラス名をつければ解決しそうと思っていましたが、 remodal.min.jsの中身が見れず、上書きできない状態です...
Lhankor_Mhy

2025/11/06 04:00

OR ということは、閉じようと閉じまいとどちらでもいいということですか?
yus43254

2025/11/06 05:00

すみません。モーダルはどっちにしろ閉じたいです! 問い合わせの場所に飛んでモーダルは閉じたい形になります!
guest

回答1

0

ベストアンサー

data-remodal-actionを削除して、アンカーリンクを貼ればいいかと思います。
サンプルを置いておきます。
https://jsfiddle.net/Lhankor_Mhy/xj05wpa2/

html

1<div data-remodal-action="cancel" class="remodal-cancel remodal-cancel_btn">×</div>

↑を↓に

html

1<a href="#contact"> 2 <div class="remodal-cancel remodal-cancel_btn">×</div> 3</a>

下のボタンも同様に。


現状のWEB標準から考えますと、ターゲットデバイスに縛りがないのであれば、昔のライブラリを使わずにdialog要素を使った方がいいかと思います。
老婆心ながら。

参考:
モーダルUIをシンプルにできる! 進化を続けるHTMLのdialog要素 - ICS MEDIA


コメントを受けて追記

イベントを拾う形ではどうでしょうか。
変更したサンプルを置いておきます。
https://jsfiddle.net/Lhankor_Mhy/xj05wpa2/1/

js

1$(document).on('closing', '.remodal', function (e) { 2 window.location.hash = '#contact'; 3});

投稿2025/11/06 04:37

編集2025/11/06 05:41
Lhankor_Mhy

総合スコア37643

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

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

yus43254

2025/11/06 05:01

分かりやすいご説明ありがとうございます!確認いたします!
Lhankor_Mhy

2025/11/06 05:26

あー、モーダルは閉じたいんですね。では、これではダメですね。
Lhankor_Mhy

2025/11/06 05:42

追記しました。
yus43254

2025/11/06 06:36 編集

回答ありがとうございます。試してみましたが解決できませんでした。一つのモーダルでしたらできました! ・複数モーダルウィンドウのため、aタグで①モーダル内容②モーダル内容など要素を指定したのですが、 ②モーダル内容は反応せず①モーダル内容のみ反応した形となりました。 ### 該当のソースコード ```HTML <div id="slide06"> <div class="item"><img class="job_img" src="assets/images/6.webp" alt=""></div> <div class="bl_button_inner"> <button id="showDialog" class="js_dialog_open el_button" data-dialog="#js_dialog_1">dialog1を開く</button> </div> <dialog id="js_dialog_1" class="bl_dialog"> <a href="#slide06" id="close"><button>×</button></a> <div> <p>ダイアログボックスの説明文が入ります。</p> <a href="#form" id="closeDialog"><button id="closeDialog">閉じる</button></a> </div> </dialog> </div> <div id="slide07"> <div class="item"><img class="job_img" src="assets/images/7.webp" alt=""></div> <div class="bl_button_inner"> <button id="showDialog" class="js_dialog_open el_button" data-dialog="#js_dialog_2">dialog2を開く</button> </div> <dialog id="js_dialog_2" class="bl_dialog"> <a href="#slide06" id="close"><button>×</button></a> <div> <p>ダイアログボックスの説明文が入ります。02</p> <a href="#form" id="closeDialog"><button id="closeDialog">閉じる</button></a> </div> </dialog> </div> ``` JS const dialog = document.querySelector("dialog"); const showButton = document.querySelector("#showDialog"); showButton.addEventListener("click", () => { dialog.showModal(); // モーダルダイアログを開く }); const button = document.querySelector("#close","#closeDialog"); button.addEventListener("click", () => { dialog.close(); // dialog要素を閉じる }) const closeButton = document.querySelector("#closeDialog"); closeButton.addEventListener("click", () => { dialog.close(); // モーダルダイアログを閉じる }); この場合どの辺りに原因がありそうでしょうか?
yus43254

2025/11/06 06:17

追記いただきありがとうございます!こちらも試してみます!
yus43254

2025/11/06 08:06

問題が解決しました! 新しく追加したaタグの「.modal-button」で、 Remodal.min.jsで反映されていた「.remodal-wrapper」と「.remodal-overlay」にJSで「display:none」を書いたら無事実装できました! ------------------- $(function(){ $('.modal-button').on('click', function(){ $('.remodal-wrapper').css({ 'display': 'none' }); }); }); $('.modal-button').on('click', function(){ $('.remodal-overlay').css({ 'display': 'none' }); }); ------------------- ご回答いただきありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問