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

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

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

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

jQuery

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

HTML

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

CSS

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

Q&A

解決済

1回答

3300閲覧

モーダルを閉じるボタンを最前面に配置したい。

erajera

総合スコア22

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クリップ

投稿2021/01/14 08:40

前提・実現したいこと

CodeSandBox
上記のデモは「モーダルを開く」ボタンを押すとモーダルが表示されます。
モーダル領域以外をクリックすると、モーダルを閉じます。
モーダルの開閉はjQueryを使用しています。

現状、モーダルの後面にモーダルを閉じるボタンがあるので、閉じるボタンをモーダルよりも前面に配置したいです。

該当のソースコード

html

1<button id="openModal">モーダルを開く</button> 2<aside id="modal_background" class="close"> 3 <button> 4 閉じる 5 </button> 6</aside> 7<aside id="modal" class="close"> 8 <div class="modal_contents"> 9 <h2>モーダルの中</h2> 10 </div> 11</aside>

css

1* { 2 box-sizing: border-box; 3} 4 5body { 6 background-color: #aaa; 7 color: white; 8} 9 10button { 11 cursor: pointer; 12} 13 14#modal_background { 15 position: fixed; 16 top: 0; 17 left: 0; 18 width: 100vw; 19 height: 100vh; 20 background-color: rgba(0, 0, 0, 0.6); 21 opacity: 1; 22 transition: opacity 0.3s; 23} 24 25#modal_background.close { 26 opacity: 0; 27 pointer-events: none; 28} 29 30#modal_background button { 31 position: absolute; 32 top: 16px; 33 right: 16px; 34 padding: 8px; 35 color: white; 36 background-color: black; 37 z-index: 1; 38} 39 40#modal { 41 position: fixed; 42 top: 0; 43 left: 0; 44 width: 100vw; 45 height: 100vh; 46 display: flex; 47 align-items: center; 48 justify-content: center; 49 padding: 16px; 50 transform: scale(1); 51 transition: transform 0.3s; 52} 53 54#modal.close { 55 transform: scale(0); 56} 57 58.modal_contents { 59 background-color: rgba(255, 255, 255, 0.8); 60 padding: 16px; 61 color: black; 62 min-width: 90%; 63 min-height: 90%; 64}

javascirpt

1$(function () { 2 const closeModal = (e) => { 3 if (e.target.closest(".modal_contents")) return; 4 $("#modal").addClass("close"); 5 $("#modal_background").addClass("close"); 6 $("#modal").off("click"); 7 }; 8 9 $("#openModal").click(() => { 10 $("#modal_background").removeClass("close"); 11 $("#modal").removeClass("close"); 12 $("#modal").on("click", closeModal); 13 }); 14});

試したこと

閉じるボタンにz-index: 1を設定してみましたが効果はありませんでした。

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

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

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

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

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

guest

回答1

0

ベストアンサー

閉じるボタンをモーダルの中に設け、閉じるボタンをモーダルの外に配置するのはいかがでしょうか?

以下であれば、モーダルの前面に閉じるボタンを配置できました。

HTML

1  <aside id="modal" class="close"> 2 <div class="modal_contents"> 3 <button> // 閉じるボタンをモーダル内に移動 4 閉じる 5 </button> 6 <h2>モーダルの中</h2> 7 </div> 8 </aside>

CSS

1// ボタン位置をモーダル外に配置 2.modal_contents button { 3 position: fixed; 4 top: 16px; 5 right: 16px; 6}

投稿2021/01/14 09:06

Twoshi

総合スコア354

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問