Il y a beaucoup de manières de réaliser laissent tomber vers le bas des effets de menu, plus dont exiger un certain genre de coup sec. Vous pouvez employer des effets de bouton, ou rouler plus d'et dérouler les événements comme ce que vous avez fait. Le problème avec votre code est les interactions entre les boutons sont tout à fait peu clair, par exemple vous ajoutez le renversement d'événement du bouton extérieur à une fonction appelée le floorOut. Quand il est vrai que quand vous roulez plus de le bouton extérieur, vous voulez que le bouton de plancher se ferme, toutefois la manière que des traiteurs d'événement sont ajoutés partout présente le code élevé d'accouplement, et les erreurs de logique.
J'ai modifié votre code un peu et et les effets sont tout à fait corrects. Il y a un petit bogue cependant, c'est parfois quand vous déplacez la souris au-dessus et hors du bouton trop de rapidement, il peut finir avoir vers le haut la souris au-dessus du bouton mais le menu n'est pas ouvert. Je peux vivre avec cela. Il est fixable mais peut-être pas en valeur l'effort. Pas sure au sujet de votre client cependant.