Чтобы не проверять свойство, можно удалять обработчик события после первого срабатывания
element.addEventListener("transitionend", function callback() {
	element.removeEventListener("transitionend", callback);
	…
});
Интереснее ситуация, когда время анимации разное, как определить тогда, что все анимации закончились?