<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js" data-semver="3.1.1" data-require="jquery@*"></script>
<link href="style.css" rel="stylesheet" />
</head>
<body>
<h1>APM Calculator</h1>
<input id="text-box" placeholder="Write here" type="text" />
<h2>Difficulty (miliseconds between actions)</h2>
<input id="difficulty" value="2000" placeholder="miliseconds" type="number" onkeypress='return event.charCode >= 48 && event.charCode <= 57' />
<section>
<h3>Actions:</h3>
<p id="output-actions">-</p>
<h3>Times:</h3>
<p id="output-times">-</p>
<h3>Total time:</h3>
<p id="output-total-time">-</p>
<h3>Aps:</h3>
<p id="output-aps">-</p>
<h3>Apm:</h3>
<p id="output-apm">-</p>
</section>
<script>
var actions = 0;
var _actions = actions;
var times = [];
document.getElementById("text-box").onkeyup = function() {
var difficulty = document.getElementById("difficulty").value;
document.getElementById("difficulty").disabled = true;
actions += 1;
times.push($.now());
document.getElementById("output-actions").innerHTML = actions;
document.getElementById("output-times").innerHTML = times;
setTimeout(function(difficulty) {
calculate(this.times);
}, difficulty);
function calculate(times) {
_actions += 1;
if (_actions == actions) {
time_total = times[times.length - 1] - times[0];
document.getElementById("output-total-time").innerHTML = time_total;
aps = actions / (time_total / 1000);
apm = aps * 60;
document.getElementById("output-aps").innerHTML = aps;
document.getElementById("output-apm").innerHTML = apm;
reset();
}
}
function reset() {
actions = _actions = 0;
times = [];
document.getElementById("difficulty").disabled = false;
document.getElementById("text-box").value = "";
document.getElementById("output-actions").innerHTML = "-";
document.getElementById("output-times").innerHTML = "-";
}
}
</script>
</body>
</html>
// Code goes here
/* Styles go here */