Если вы хотите, чтобы пользователь нажимал и удерживал кнопку в течение некоторого времени, ответ Шилли является хорошим решением.
Но если вы хотите, чтобы пользователь нажимал кнопку снова и снова до истечения времени,возможно, вам следует вместо этого использовать коэффициент попадания.
С коэффициентом попадания вы можете определить хорошее соотношение, чтобы перенаправить пользователя и попросить пользователя перейти на коэффициент.
Таким образом, пользователь будет нажиматьнажимайте кнопку в течение некоторого периода времени (10 секунд), и вы сравниваете коэффициент попадания пользователя (количество нажатий / время) с заданным коэффициентом.
Код выглядит примерно так, как показано ниже:
document.addEventListener("DOMContentLoaded", function() {
var button = document.querySelector("button#clickMe");
var clicks = 0;
var hitRateNeeded = 3.2;
var timeInSeconds = 10;
var started = false;
var timeout = null;
button.addEventListener('click', function() {
if (!started) {
started = true;
timeout = setTimeout(function() {
freeze();
clearAttempt();
// do something ...
}, timeInSeconds * 1000);
}
clicks++;
});
function freeze() {
var currentHitRate = clicks / timeInSeconds;
console.log("Current Hit Rate", currentHitRate);
console.log("Passed?", currentHitRate > hitRateNeeded)
}
function clearAttempt() {
clicks = 0;
started = false;
clearTimeout(timeout);
}
});
<button id="clickMe">Click for 10 seconds</button>