나는 Pomodoro-esque 타이머로 작업하고 있습니다. 타이머는 다음을 수행 할 수 있어야합니다자바 스크립트 | while 루프 및 타이머의 어려움
- 시작 오초 타이머 : '시작'버튼을 누르면 . 시간은 물론 변경 될 것입니다.
- 타이머가 만료 된 후 시작 및 종료 타임 스탬프가 포함 된 AJAX 이벤트를 보내십시오.
- 3 초 타이머를 시작하십시오.
- 타이머가 만료 된 후 새로운 5 초 타이머를 시작하십시오. (루프 단계 1에서 3까지 총 4 번)
- 네 번째 루프가 끝나면 7 초 타이머를 시작합니다.
- 7 초 타이머가 만료 된 후 5-3 루프를 다시 시작하십시오.
은 '정지'버튼을 누르면 :
- 는, 타이머를 취소 다시 기본 상태로 재설정.
<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>
자바 스크립트
HTML :
이 내가 지금 가지고있는 코드 나는 그것이 매우 어려운 원하는 기능을 얻을 찾을
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