|
|
|
|
|
document.addEventListener('DOMContentLoaded', () => { |
|
const clickButton = document.getElementById('clickButton'); |
|
const cpsDisplay = document.getElementById('cpsDisplay'); |
|
const timerElement = document.getElementById('timer'); |
|
|
|
let clickCount = 0; |
|
let intervalId; |
|
let testDuration = 15; |
|
|
|
function startTest() { |
|
|
|
clickCount = 0; |
|
cpsDisplay.textContent = 'CPS: 0.00'; |
|
timerElement.textContent = testDuration; |
|
|
|
|
|
if (intervalId) { |
|
clearInterval(intervalId); |
|
} |
|
|
|
|
|
intervalId = setInterval(updateTimer, 1000); |
|
|
|
|
|
clickButton.classList.add('white'); |
|
clickButton.textContent = clickCount; |
|
|
|
|
|
clickButton.removeEventListener('click', startTest); |
|
clickButton.addEventListener('click', recordClick); |
|
} |
|
|
|
function updateTimer() { |
|
testDuration--; |
|
timerElement.textContent = testDuration; |
|
|
|
if (testDuration <= 0) { |
|
|
|
clearInterval(intervalId); |
|
clickButton.classList.remove('white'); |
|
clickButton.textContent = 'Start'; |
|
clickButton.addEventListener('click', startTest); |
|
|
|
|
|
displayFinalCPS(); |
|
|
|
|
|
testDuration = 15; |
|
} |
|
} |
|
|
|
function recordClick() { |
|
clickCount++; |
|
clickButton.textContent = clickCount; |
|
updateCPS(); |
|
} |
|
|
|
function updateCPS() { |
|
const cps = clickCount / (15 - testDuration); |
|
cpsDisplay.textContent = `CPS: ${cps.toFixed(2)}`; |
|
} |
|
|
|
function displayFinalCPS() { |
|
const finalCPS = clickCount / 15; |
|
cpsDisplay.textContent = `Final CPS: ${finalCPS.toFixed(2)}`; |
|
} |
|
|
|
|
|
clickButton.addEventListener('click', startTest); |
|
}); |
|
|