Как бы вам объяснить. Вот сейчас у вас меню срабатывает на прямые действия пользователя (наведение мышки на пункт меню). Это нормально для каких то минимальных анимаций, но не более того.
Для более сложной логики, нужно запоминать действия пользователя в очереди:
1. Навели мышку на пункт, добавили в очередь запись о наведении
2. Убрали мышку, добавили запись об этом.
3. Навели на другой пункт, добавили запись опять.
А дальше, уже совсем другая функция следит за этой очередью и последовательно выполняет действия.
В общем примерно так это делается, я конечно описал очень упрощенно, но подумайте в этом направлении.