NEOmanceR
@NEOmanceR
Начинающий веб разработчик

Как приостановить обработку события JS?

Во время клика по кнопке включаю анимацию.
Как отключить обработчик событий пока анимация не дошла до конца. Что бы кнопка не включала анимацию заново ?
И потом снова можно было кликать и запускать
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Если у вас css-анимация, то можно продолжить обработку после события animationend.
Если js-анимация - добавьте вызов callback'а в конце анимации.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
john36allTa
@john36allTa
That`s calling Walker
на клике записываете куда нибудь, хоть в саму кнопку, что анимация стартовала. При повторном клике проверяете свою запись и возвращаетесь если активна. По завершению анимации удаляете запись. Ну или, что логичнее, отключаете кнопку на время рендеринга анимации
function myAwesomeAnimation(){
     return new Promise( function(resolve, reject){
          // some code
          resolve(); //animation rendering complete
     })
}

document.querySelector('#myAwesomeAnimationStartButton')
     .addEventListener('click', function({ target }){
          if (target.dataset.animationRendering) return;
          target.dataset.animationRendering = target.disabled = true;
          myAwesomeAnimation().then( _ => target.dataset.animationRendering = target.disabled = false );
     })
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы