前提・実現したいこと
YES/NO診断ページで診断結果をモーダルで出したい。
診断結果は3つある。(YESの数に応じて診断結果が異なる)
下記のページを参考に診断ページを作成しましたが、
診断結果をモーダルで出したいです。(レスポンシブで出したい)
条件によって出すページが違うので上手く表示できない状況です。。
何か良いソースコードの書き方を教えてください。よろしくお願いします。
▼現段階のソース▼
<!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>物件購入診断ページ</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <link rel="stylesheet" href="css/reset.css"> <!--リセット--> <link rel="stylesheet" href="css/style.css"> <script type="text/javascript" src="js/jquery-3.2.0.min.js"></script> <script type="text/javascript" src="js/modal.js"></script> <script> $(function(){ //ボタンがクリックされた時 $("button").click(function(){ //一度結果を非表示にする $(".result").hide();<script> $(document).ready(function() { $("#open").on("click", function(e) { e.preventDefault(); $("#overlay, #modal").addClass("active"); $("#close, #overlay").on("click", function() { $("#overlay, #modal").removeClass("active"); return false; }); }); }); </script> </head> <body> <div id="wrapper"> <div class="question"> <h1>今のあなたの状況は?</h1> <ul> <li> <span>Q1. 質問ここに入る</span> <label> <input type="radio" name="q01" class="typeA"> YES</label> <label> <input type="radio" name="q01" class="typeB"> NO</label> </li> <li> <span>Q2. 質問ここに入る</span> <label> <input type="radio" name="q02" class="typeA"> YES</label> <label> <input type="radio" name="q02" class="typeB"> NO</label> </li> <li> <span>Q3. 質問ここに入る</span> <label> <input type="radio" name="q03" class="typeA"> YES</label> <label> <input type="radio" name="q03" class="typeB"> NO</label> </li> <li> <span>Q4. 質問ここに入る</span> <label> <input type="radio" name="q04" class="typeA"> YES</label> <label> <input type="radio" name="q04" class="typeB"> NO</label> </li> <li> <span>Q5. 質問ここに入る</span> <label> <input type="radio" name="q05" class="typeA"> YES</label> <label> <input type="radio" name="q05" class="typeB"> NO</label> </li> <li> <span>Q6. 質問ここに入る</span> <label> <input type="radio" name="q06" class="typeA"> YES</label> <label> <input type="radio" name="q06" class="typeB"> NO</label> </li> </ul> <button>診断する</button> </div> <div class="result resultA"> <h2>YESの数が4個以上<br> </h2> <p>答が入る</p> <p><a href="#">セミナー申し込み</a></p> <button id="close">CLOSE</button> </div> <div class="result resultB"> <h2>YESの数が2~3個<br> </h2> <p>答が入る</p> <p><a href="#">セミナー申し込み</a></p> </div> <div class="result resultC"> <h2>YESの数が0~1個<br> </h2> <p>答が入る。</p> <p><a href="#">セミナー申し込み</a></p> </div> </div> </body> </html> // JavaScript Document//問題数を取得 var qNum = $("ul li").length; if( $("ul li input:checked").length < qNum ){ //全てチェックしていなかったらアラートを出す alert("未回答の問題があります"); } else { //チェックされているinputの数を取得 var typeANum = $(".typeA:checked").length, typeBNum = $(".typeB:checked").length, typeCNum = $(".typeC:checked").length, typeDNum = $(".typeD:checked").length; if( typeANum >= 4 ) { //4個以上の場合 $(".resultA").fadeIn(); } else if( typeANum >= 2 ) { //2~3個の場合 $(".resultB").fadeIn(); } else if( typeANum >= 0 ) { //0~1個の場合 $(".resultC").fadeIn(); } } }); }) </script>
▼参考にしたページ▼
https://sole-color-blog.com/blog/1060/
回答1件
あなたの回答
tips
プレビュー