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

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

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

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

jQuery

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

Q&A

1回答

607閲覧

js:モーダルの設定に関して

OWTR8

総合スコア2

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2020/08/01 12:26

編集2020/08/01 19:13

前提・実現したいこと

・任意URLを取得して、パラメータ(?modal=show)がついている時に、モーダルを表示させたい。

発生している問題・エラーメッセージ

・初学者につき、1週間程度本件で、頭を悩ませているのですが、なかなか
実装のイメージがついていません。。。
現在は、ググったコードを参考に、モーダルとパラメータコードを記述
した段階です。
やるべきことの検討がなかなかつかず、アドバイスを頂けますと幸いです。
※不足情報などありましたら、ご指摘ください

該当のソースコード

HTML

1<!-- モーダル表示ボタン --> 2 <div class="content"> 3 <a class="js-modal-open" href="">?modal=show</a> 4 </div> 5 <!-- モーダル中身 --> 6 <div class="modal js-modal"> 7 <div class="modal__bg js-modal-close"></div> 8 <div class="modal__content"> 9 <div class="modal__logo"> 10 <img src="img/modal_logo.svg" alt=""> 11 </div> 12 <div class="modal__contens3"> 13 <div class="modal__contens-inner"> 14 <div class="modal__contents-top"> 15 <p> ポイント1</p> 16 </div> 17 <div class="modal__contents"> 18 <div class="modal__contents-middle-box"> 19 <div class="modal__contents-middle"> 20 <p>タイトル</p> 21 <p class="modal__contents-middle-sp"> タイトル</p> 22 </div> 23 <div class="modal__contens-bottom"> 24 <p>ダミーテキストダミー<span>テ<br>キストダミーテキスト</span></p> 25 </div> 26 </div> 27 </div> 28 </div> 29 <div class="modal__contens-inner2"> 30 <div class="modal__contents-top"> 31 <p> ポイント2</p> 32 </div> 33 <div class="modal__contents"> 34 <div class="modal__contents-middle-box"> 35 <div class="modal__contents-middle"> 36 <p>タイトル</p> 37 <p class="modal__contents-middle-sp"> タイトル</p> 38 </div> 39 <div class="modal__contens-bottom"> 40 <p>ダミーテキストダミー<span>テ<br>キストダミーテキスト</span></p> 41 </div> 42 </div> 43 </div> 44 </div> 45 <div class="modal__contens-inner"> 46 <div class="modal__contents-top"> 47 <p> ポイント3</p> 48 </div> 49 <div class="modal__contents"> 50 <div class="modal__contents-middle-box"> 51 <div class="modal__contents-middle"> 52 <p>タイトル</p> 53 <p class="modal__contents-middle-sp"> タイトル</p> 54 </div> 55 <div class="modal__contens-bottom"> 56 <p>ダミーテキストダミー<span>テ<br>キストダミーテキスト</span></p> 57 </div> 58 </div> 59 </div> 60 </div> 61 </div> 62 <div class="modal__form"> 63 <a href="#contact__form">無料相談・お申込みはこちら</a> 64 </div> 65 <a class="js-modal-close" href=""><i class="fas fa-times"></i></a> 66 </div><!--modal__inner--> 67 </div><!--modal-->

scss

1.modal__content { 2 margin: 0 auto; 3 padding: 40px; 4} 5.modal { 6 display: none; 7 height: 100vh; 8 position: fixed; 9 z-index: 10; 10 top: 0; 11 width: 100%; 12} 13.modal__bg { 14 background: rgba(191, 191, 191, 0.8); 15 height: 100vh; 16 position: absolute; 17 width: 100%; 18} 19.modal__content { 20 background: #fff; 21 border: 1px solid #707070; 22 border-radius: 20px; 23 left: 50%; 24 padding: 29px 38px 68px 64px; 25 position: absolute; 26 top: 50%; 27 transform: translate(-50%,-50%); 28 width: 67%; // モーダル白幅調節 29} 30.modal__form a { 31 display: block; 32 color: white; 33 background-color: $main_Red; 34 border-radius: 14px; 35 font-size: 24px; 36 padding: 27px 0 27px 84px; 37 white-space: nowrap; 38} 39.modal__form { 40 margin: 0 auto; 41 width: 60%; 42} 43.modal__contens3 { 44 margin-top: 43px; 45 margin-bottom: 79px; 46 display: flex; 47 justify-content: center; 48} 49.modal__contents-middle-box { 50 background-color: #E5F1FD; 51 width: 212px; 52 height: 190px; 53 position: absolute; 54 z-index: -1; 55 top: 18px; 56 left: 15px; 57} 58.modal__contens-inner2 { 59 margin: 0 28px; 60} 61.modal__contents, .modal__contents2 { 62 border: 2px solid #1692FF; 63 width: 212px; 64 height: 190px; 65 position: relative; 66} 67.fas { 68 font-size: 30px; 69 color: #1692FF; 70 position: absolute; 71 top: 34px; 72 right: 37px; 73} 74.modal__contents-top { 75 background-color: white; 76 width: 55%; 77 margin-left: 45px; 78 margin-bottom: -10px; 79 position: relative; 80 z-index: 1; 81} 82.modal__contents-top p { 83 color: #1692FF; 84 font-size: 19px; 85 // 本来は26px 86 line-height: 24px; 87} 88.modal__contents-middle { 89 padding: 16px 0 0 29px; 90} 91.modal__contents-middle p { 92 color: #444444; 93 font-size: 18px; 94 // 本来は20px 95 line-height: 32px; 96} 97.modal__contens-bottom { 98 padding: 21px 0 0 6px; 99} 100.modal__contens-bottom p { 101 color: #1692FF; 102 font-size: 14px; 103 // 本来は16px 104 line-height: 32px; 105}

js

1// モーダル 2$(function(){ 3 $('.js-modal-open').on('click',function(){ 4 $('.js-modal').fadeIn(); 5 return false; 6 }); 7 $('.js-modal-close').on('click',function(){ 8 $('.js-modal').fadeOut(); 9 return false; 10 }); 11}); 12 13// パラメータ取得 14// window.location.search = "?modal=show"; 15 16function getUrlQueries() { 17 var queryStr = window.location.search.slice(1); // 文頭?を除外 18 queries = {}; 19 20 // クエリがない場合は空のオブジェクトを返す 21 if (!queryStr) { 22 return queries; 23 } 24 25 // クエリ文字列を & で分割して処理 26 queryStr.split('&').forEach(function(queryStr) { 27 // = で分割してkey,valueをオブジェクトに格納 28 var queryArr = queryStr.split('='); 29 queries[queryArr[0]] = queryArr[1]; 30 }); 31 32 return queries; 33}

試したこと

パラメータ取得と、モーダル表示非表示の、jsコードの作成

補足情報(FW/ツールのバージョンなど)

OS:Windows10、VSコード

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

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

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

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

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

yambejp

2020/08/01 15:35

modalはどこにどうあるのでしょうか?
OWTR8

2020/08/01 19:20

>参考になりそうな文献がありました >http://www-creators.com/archives/4463 文献の共有ありがとうございます! 読み込んでみます。 >modalはどこにどうあるのでしょうか? ご質問ありがとうございます。 まずは、HTML/scssを追記いたしました。 今回の条件ですと、Webページ上にボタンはなく、リンクをクリックすることで、 ?modal.showという、パラメーターを取得ということになります。 このあたりの、理解に苦しんでいるといった状況です。。。
guest

回答1

0

javascript

1 var search=Object.fromEntries(new URLSearchParams(location.search.substring(1))); 2 console.log(search['modal']||null);

投稿2020/08/01 15:49

yambejp

総合スコア114839

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問