Я создал две кнопки запуска и остановки для моделирования частиц по определенному пути.
<button onclick="start()" id="myButton">Start</button>
<button onclick="stop()">Stop</button>
Когда я нажимаю кнопку запуска, запускается функция анимации, и когда я останавливаюсь, анимация останавливается и снова, когда я нажимаю кнопку "Пуск", она возобновляется с той же позиции, где она останавливается. Моя проблема заключается в том, что когда я нажимаю кнопку запуска при анимации, цикл анимации повторяется и, следовательно, скорость частиц увеличивается каждый раз, когда я нажимаю кнопку запуска.
animate - это функция, которая запускается при нажатии кнопки "Пуск". Я попытался отключить этот атрибут, но полностью отключил кнопку запуска после первого щелчка, но я хочу использовать его для возобновления анимации.
function start() {
requestId = window.requestAnimationFrame(animate);
//var disable=document.getElementById("myButton").setAttribute("disabled","disabled");
}
function stop() {
if (requestId){
clearTimeout(timeInterval);
window.cancelAnimationFrame(requestId);
requestId = 0;
}
}
Заранее спасибо...
Сохраните состояние анимации в переменной и убедитесь, что перед запуском анимации:
var running = false;
function start() {
if (running) {
return;
}
requestId = window.requestAnimationFrame(animate);
running = true;
}
function stop() {
if (requestId) {
clearTimeout(timeInterval);
window.cancelAnimationFrame(requestId);
running = false;
requestId = 0;
}
}