Ну я обычно делаю что-то вроде этого
function showMenu(name, callback) {
var el = document.getElementById(name);
// Ещё всякая инициализация
(function() {
if (/* Ещё продолжаем анимацию? */) {
// Двигаем объект
setTimeout(arguments.callee, 10);
} else {
// Закончили упражнение
callback();
}
})();
}