See the Pen JavaScriptで5秒当てゲーム by takapen (@takapen) on CodePen.
html
start
JavaScript
(function(){//即時関数で囲うと他に影響を与えない
"use strict";//厳密なエラーチェック
//スタートボタンを押した後なのかそうでないのかを知りたいので、この変数を宣言する
var isStarted = false;//最初はスタートしてないのでfalseにしておく
var startTime;//スタートボタンを押した時に現在の時間を保持しておきたい
var diff;//押された時からスタートタイムを引く。その差を保持しておく変数
var msg = "5秒で止めろ!";
var result = document.getElementById("js-result");
var btn = document.getElementById("js-btn");
result.innerHTML = msg;
btn.addEventListener("click", function(){
if(!isStarted){//isStartedがfalseだったら
isStarted = true;
this.innerHTML = "stop";
startTime = Date.now();
result.innerHTML = msg;//スタートボタンを押したら最初のメッセージを表示。
} else {
isStarted = false;
this.innerHTML = "start";
diff = (Date.now() - startTime) / 1000 - 5;//今の時間からスタートタイムを引く。ミリ秒を1000で割って秒にする。5秒との差のためさらに5を引く。
//console.log(diff);
if ( diff >= -0.1 && diff <= 0.1) {//5秒の前後0.1秒を許容範囲にする
result.innerHTML = "パーフェクト";
} else if ( diff > 0) {
result.innerHTML = "あなたは" + diff.toFixed(2) + "秒遅かった"//小数点2桁まで表示
} else {
result.innerHTML = "あなたは" + Math.abs(diff).toFixed(2) + "秒速かった"//マイナスなので絶対値を表示するabsをつかう。小数点2桁まで表示
}
}
});
})();
参照 : ドットインストール