CSS transitions и JavaScript
Попробуйте использовать событие transitionend.
Вот еще нашел JQuery Transit — позволяет анимировать через transitions, делать очереди, с простым fallback до обычной JS-анимации.
ricostacruz.com/jquery.transit/