Повторять функцию постоянно на муссондауне

Я делаю ручку, в которой вы можете снимать, просто нажав или вы можете просто удерживать ее, однако я не знаю, как сделать повторное повторение события снова и снова. вы можете увидеть это здесь: http://codepen.io/TheAndersMan/pen/gwKmYy?editors=0111

Но чтобы это было просто, я просто приведу пример:

document.querySelector("body").addEventListener("mouseDown", function() {
    console.log(123)
})

Я надеюсь, что я смогу установить интервал, чтобы делать это каждую секунду или половину секунды.

Заранее спасибо!

javascript,

1

Ответов: 2


4 принят

Используйте интервал !
Очистить его при помощи мыши

var fireRate = 20,
    fireInterval = null;

function fire() {
   console.log("BAM!");
}

function startFire() {
   fire();
   fireInterval = setInterval(fire, 1000/fireRate );
}

function stopFire() {
   clearInterval(fireInterval);
}

document.addEventListener("mousedown", startFire);
document.addEventListener("mouseup", stopFire);
html, body{height:100%;}


1

Вы можете добавить прослушиватель событий для события mousedown , а в callback использовать setInterval () для вызова функции с заданным интервалом (например, 500 мс). Затем наблюдайте за мышью, а в обратном вызове используйте clearInterval () для мыши, чтобы очистить интервал. см. пример ниже:

var interval; //set scope here so both functions can access it
document.addEventListener("mousedown", function() {
  fireFunction();
  interval = setInterval(fireFunction, 500); //500 ms - customize for your needs
});
function fireFunction() {
  console.log(123); //replace with your code for firing 
}
document.addEventListener("mouseup", function() {
  if (interval ) {
    clearInterval(interval );
  }
});

JavaScript,
Похожие вопросы