javascriptとjqueryで簡単なストップウォッチを作成しました
2018年12月3日
javascriptとjqueryで簡単なストップウォッチを作成しました。
<div id="stoptimer"></div>
<script src="./jquery.min.js"></script>
<script>
var StopTimer = function () {
var elapsed = 0, start_time = 0, hour = 0, min = 0, sec = 0, flag_stopped = true;
var elem_id = $('#stoptimer');
var div_timer = $('<div></div>'),
elem_hour = $('<span></span>', {text: '00', addClass: 'stoptimer_hour'}),
elem_min = $('<span></span>', {text: '00', addClass: 'stoptimer_min'}),
elem_sec = $('<span></span>', {text: '00', addClass: 'stoptimer_sec'});
div_timer
.append(elem_hour)
.append('<span>:</span>')
.append(elem_min)
.append('<span>:</span>')
.append(elem_sec);
elem_id.append(div_timer);
var div_btn = $('<div></div>'),
btn_start = $('<button></button>', {
text: "START",
addClass: "stoptimer_btn_start",
click: function(){
changeFlagStopped(false);
elapsedTime();
}
}),
btn_stop = $('<button></button>', {
text: "STOP",
addClass: "stoptimer_btn_stop",
click: function(){
changeFlagStopped(true);
}
}),
btn_reset = $('<button></button>', {
text: "RESET",
addClass: "stoptimer_btn_reset",
click: function(){
setElapsedTime(0);
changeFlagStopped(true);
}
});
div_btn
.append(btn_start)
.append(btn_stop)
.append(btn_reset);
elem_id.append(div_btn);
var toggleBtn = function () {
if (flag_stopped) {
btn_start.attr('disabled', false);
btn_stop.attr('disabled', true);
btn_reset.attr('disabled', false);
} else {
btn_start.attr('disabled', true);
btn_stop.attr('disabled', false);
btn_reset.attr('disabled', true);
}
};
toggleBtn();
var changeFlagStopped = function (flg) {
flag_stopped = flg;
toggleBtn();
};
var writeTime = function () {
hour = (elapsed >= 3600) ? Math.floor(elapsed / 3600) : 0;
min = (elapsed >= 60) ? Math.floor((elapsed % 3600) / 60) : 0;
sec = Math.floor(elapsed % 60);
if(hour < 10) hour = "0" + hour;
if(min < 10) min = "0" + min;
if(sec < 10) sec = "0" + sec;
elem_hour.text(hour);
elem_min.text(min);
elem_sec.text(sec);
};
var elapsedTime = function () {
if (flag_stopped) return;
writeTime();
elapsed++;
setTimeout(elapsedTime, 1000);
};
var setElapsedTime = function (t) {
elapsed = t;
writeTime();
};
return {};
}
$(function() {
var timer = StopTimer();
});
</script>