前提・実現したいこと
実現したいこと
オンラインテストのようにボタンを押した後カウントが始まったと同時に問題(コンテンツ)が見れるようにしたい
別々のボタンを用意すれば簡単だが一つのボタンで二つとも行いたい。
こちらのサイトを参考にボタンの折り畳みの開閉を作成しました。
発生している問題・エラーメッセージ
ボタンを押したときカウントが行われるが、折り畳まれたコンテンツは表示ない。
押す前
押した後
該当のソースコード
html
1<!-- bootstrapのcss,jsを読み込む --> 2<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> 3<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script> 4<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> 5 6<!-- トリガーとなるリンク&ボタン --> 7<button 8 type="button" 9 data-toggle="collapse" 10 data-target="#collapseExample" 11 aria-expanded="false" 12 aria-controls="collapseExample" 13 value="カウント開始" 14 id="startcount" 15 onclick="startShowing()" 16> 17 ボタンで開閉させる 18</button> 19<!-- /トリガーとなるリンク&ボタン --> 20<input type="button" value="カウント停止" id="endcount" onclick="stopShowing()"> 21<!-- 対象のコンテンツ --> 22<div class="collapse" id="collapseExample"> 23 開閉させるコンテンツ 24 開閉させるコンテンツ 25 開閉させるコンテンツ 26</div> 27<!-- /対象のコンテンツ --> 28 29<p id="PassageArea">(ここにカウントが表示されます)</p> 30 31 32 33 34 <script> 35 var count; // 秒数カウント用変数 36 var PassSec; 37 var TimeLimit=30; 38 // 繰り返し処理の中身 39 function showPassage() { 40 count++; // カウントアップ 41 PassSec = TimeLimit - count ; 42 var msg = "ボタンを押してから " + PassSec + "秒が経過しました。"; // 表示文作成 43 document.getElementById("PassageArea").innerHTML = msg; // 表示更新 44 if(PassSec==0){ 45 stopShowing(); 46 47 } 48 } 49 50 // 繰り返し処理の開始 51 function startShowing() { 52 count = 0; // カウンタのリセット 53 PassageID = setInterval('showPassage()',1000); // タイマーをセット(1000ms間隔) 54 document.getElementById("startcount").disabled = true; // 開始ボタンの無効化 55 } 56 57 // 繰り返し処理の中止 58 function stopShowing() { 59 clearInterval( PassageID ); // タイマーのクリア 60 document.getElementById("startcount").disabled = false; // 開始ボタンの有効化 61 } 62 63</script> 64
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/26 03:28 編集
2021/07/26 03:31
2021/07/26 04:45