前提・実現したいこと
・任意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コード