私はPomodoro-esqueタイマーで作業しています。JavaScript | whileループやタイマーでの問題
「スタート」ボタンを押すと::
- スタート5秒タイマーをタイマーには次の操作を行うことができなければなりません。
- タイマーの期限が切れた後、開始時刻と終了時刻を含むAJAXイベントを送信します。
- 3秒タイマーを開始します。
- タイマーの期限が切れた後、新しい5秒タイマーを開始します。 (ループステップ1〜3、合計4回)
- 4番目のループの最後に、7秒タイマーを開始します。
- 7秒タイマーが時間切れになった後、再度5-3ループを開始します。
- は、デフォルトの状態に戻ってそれをリセットし、タイマーをキャンセル:「停止」ボタンが押され
。
これは私が今持っているコードです:
HTML
<html>
<head>
<meta charset="UTF-8">
<title>Pomodoro Test</title>
<link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
<div id="test"></div>
<div id="timer">5</div>
<button id="start">Start</button>
<button id="reset">Reset</button>
<div id="startTime"></div>
<div id="endTime"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script src="functions.js"></script>
</body>
</html>
はJavaScript:
var timer = 5;
var flag = 0;
var startTime;
var endTime;
var intervalTimer;
function update() {
if (timer-- > 0) {
$("#timer").html(timer); // retrieve value from html
} else {
endTime = new Date();
//alert("Start Time = " + startTime + "\nEnd Time = " + endTime);
$("#endTime").html("End time: " + endTime.toTimeString());
resetTimer();
// TODO: send ajax call to server, sending startTime and endTime
// so that these can be saved to database
}
}
function loopingTimer() {
while(flag === 0) {
startTime = new Date();
$("#startTime").html("Start time: " + startTime.toTimeString());
startTimer();
i++;
setTimeout(function() {
if(i < 5) {
loopingTimer();
}
}, 3001)}};
$("#start").click(function() {
loopingTimer();
});
$("#reset").click(function() {
flag = 1;
});
function startTimer() {
intervalTimer = window.setInterval(update, 500);
}
function resetTimer() {
stopTimer();
timer = 5;
$("#timer").text(timer);
}
function stopTimer() {
window.clearInterval(intervalTimer);
}
私はそれが非常に困難所望の機能性を得るために見つけ、私がしてきましたこのコードを2日間微妙に修正してください。私はあなたが私を助けてくれることを心から願っています。
ケーキ。
私の質問にお答えしていただきありがとうございます。私は自分の深みからちょっと外れています - 私は自分のHTMLでどのようにタイマーを更新できるのか分かりません。 startTimerをスタートボタンにバインドしましたが、クリックすると何も起こりません。 htmlの情報をmm:ss形式で表示することは可能でしょうか? – Cake
私が不明な場合は申し訳ありません。このコードは実際にはHTML文書では何もせず、タイマーの使用法しか示していません。私はあなたのjQueryコードに従ってHTML要素を更新することができると信じています。残りの時間(単位:ms)は 'updateTimer'に' diff'によって格納されます。時間の書式設定については[この質問](http://stackoverflow.com/questions/1322732/convert-seconds-to-hh-mm-ss-with-javascript)を参照してください(秒から、 'diff'を1000)。 – GnxR
あなたの時間をありがとう。 – Cake