Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8938

クイズアプリを作ってjQueryの基礎を学ぶ 第2回(全2回)

$
0
0
jQueryクイズアプリ 今回は第1回で作成したクイズアプリをjQueryに書き換えて作っていきます。  ・クイズアプリを作ってフロントエンドの基礎を学ぶ 第1回(全2回) jQueryはJavaScriptのライブラリーです。 ライブラリーは、JavaScriptの複雑な処理をより簡単に使⽤できるようにします。 jQueryを使うには、オフィシャルサイトからライブラリーをダウンロードします。 ・https://jquery.com/download/ にて、"Download the compressed, production jQuery 3.5.1"を右クリックして"jquery-3.5.1.min.js"を保存します。 ・"jquery-3.5.1.min.js"をアプリ内のjsフォルダに置きます。 ・HTML内で、 <script src="js/jquery-3.5.1.min.js"></script> を追記します。 jsファイル内でjQuery使うには、以下のようにライブラリーを先に読み込ませる必要があります。 HTMLの全てのタグが、上から下へタグ毎に実⾏されます。例えばライブラリーのタグを⼀番下に置けば、jsの実⾏時はライブラリーが存在しないままになってしまい、エラーが出ます。 <script src="js/jquery-3.5.1.min.js"></script> <script src="js/data.js"></script> <script src="js/app.js"></script> jQuery構⽂ jQueryは、HTMLの要素を選択し、要素に対して何らかのアクションを実⾏することができます。 "$"はjQueryを定義するための記号です。 $("a").hide() : すべての <a> 要素を⾮表⽰にします。 最も使⽤されているjQueryセレクター $("a"): 要素セレクター $("#idName"): HTMLタグのid属性を使⽤して要素を⾒つけます $(".className"): HTMLタグのclass属性を使⽤して要素を⾒つけます IDの場合は"#"とID名、classの場合は"."とクラス名 ⼀般的に使⽤されるjQueryイベント click(): この関数は、ユーザーがHTML要素をクリックすると実⾏されます $("a").click(function(){ alert("click") $(this).hide(); }); dblclick(): この関数は、ユーザーがHTML要素をダブルクリックすると実⾏されます $("a").dblclick(function(){ alert("double-clicks") $(this).hide(); }); mouseleave(): マウスがHTML要素から離れると、関数が実⾏されます $("a").mouseleave(function(){ alert("mouseleave"); }); hover(): 最初の関数は、マウスがHTML要素に⼊ったときに実⾏され、2番⽬の関数はマウスがHTML要素から離れたときに実⾏されます $("a").hover(function(){ alert("In"); }, function(){ alert("Out"); }); on(): 選択した要素に1つ以上のイベントを付けることができます $("a").on({ click: function(){ alert("click"); }, dblclick: function(){ alert("dblclick"); } }); クイズアプリをjQueryに書き換える 1.jQueryライブラリーをjsフォルダーに配置し、HTMLにjQueryのタグを追加します。 <script src="js/jquery-3.5.1.min.js"></script> 2.ソースの中で、要素のセレクター、イベントなどをJavaScript構⽂からjQuery構⽂に書き換えます。 var content = $("#mainCon"); var question = $("#qst"); var choice = $("#chc"); var submit = $("#sub"); var turn = 0; var score = 0; var askingQuestion = true; var setTimer = 6; var timer = setInterval(function(){ $("#time").html("残り: " + setTimer + "秒"); setTimer--; if (setTimer === 0){ clearInterval(timer); $("#time").text("終了"); alert("タイムアップ!"); showResults(); } }, 1000); function createQst() { var choices = quizData[turn].choices; var choicesHtml = ""; for (var i = 0; i < choices.length; i++) { choicesHtml += "<input type='radio' name='quiz" + turn + "' id='choice" + (i + 1) + "' value='" + choices[i] + "'>" + " <label for='choice" + (i + 1) + "'>" + choices[i] + "</label><br>"; } question.text("No." + (turn + 1) + " " + quizData[turn].question); choice.html(choicesHtml); if (turn === 0) { submit.text("Submit"); } } function checking() { if (askingQuestion) { submit.text("Next"); askingQuestion = false; var selectedAnsw; var correctIndex; var radios = $("[name='quiz"+turn+"']"); for (var i = 0; i < radios.length; i++) { if (radios[i].checked) { selectedAnsw = radios[i].value; } if (radios[i].value == quizData[turn].correct) { correctIndex = i;} } var label = $("label")[correctIndex]; $(label).css("font-weight", "bold"); if (selectedAnsw == quizData[turn].correct) { score++; $(label).css('color', 'green'); } else { $(label).css('color', 'red'); } } else { askingQuestion = true; submit.text("Submit"); if (turn < quizData.length - 1) { turn++; createQst(); } else { clearInterval(timer); showResults(); } } } function showResults() { if (score != 0) { content.html("<h2>お疲れ様でした!</h2>" + "<h2>以下結果になります、</h2>" + "<h2>" + quizData.length + "問中、"+ score + "問正解、" + Math.round(score / quizData.length * 100) + "%<h2>"); } else { content.html("<h2>お疲れ様でした!</h2>" + "<h2>以下結果になります、</h2>" + "<h2 style='color:red'>全問不正解!<h2>"); } } $(document).ready(function(){ createQst(); }); submit.click(function(){ checking(); }); jQueryの書き換えは終了です。下記課題を自分で調べて機能を追加してみましょう! 課題 結果の画⾯でやり直しのボタンを追加 答え終わった時にタイマーを⽌める 問題をランダムに出す

Viewing all articles
Browse latest Browse all 8938

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>