Как отследить конец анимации, созданной с помощью .animate()?

Есть обработчик ивента, который прокручивает до нужного ID если мы пытаемся проскроллить какой-то блок вниз:
function FifthSpeaker(e) {
    e.preventDefault();
    var scrolling = e.originalEvent.wheelDeltaY || e.originalEvent.detail*-1;
    if (scrolling < -1 ) {
      console.log(scrolling);
      $('body,html').animate({ scrollTop: $('#fifth-speaker').offset().top }, 1000);
    }
}

Но беда в том, что после того, как анимация прошла, какое-то время (1-3 секунды) скроллить не получается, ибо стоит preventDefault(). Можно ли как-то отследить конец .animate(), после чего просто возвращать возможность скроллить?
  • Вопрос задан
  • 761 просмотр
Решения вопроса 1
@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты
Добрый вечер!
Можете использовать callback функцию:

.animate({ scrollTop: $('#fifth-speaker').offset().top }, 1000, function() {
    // Animation complete.
  });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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