Зачем так странно все делать? Сделайте анимацию на класс, и просто добавляйте его и потом удаляйте.
Либо можно сделать все через js будет не так громоздко, и посмотрите на cubic-bezier
Всё просто, анимацию надо снимать, проиграл и снял класс/стили, ловить окончание анимации можно с помощью JS эвентов animationend. Я бы ещё советовал нормально завернуть анимацию в класс, посмотрите как это сделано в библиотеках, например AnimateCSS