I've made some adjustments to my answer, and sorry for my previous uncarefully one.
You may use animate both when mouseenter and mouseleave events. But unfortunately, animate has some problems with {"height": "auto"} expression, so I found this one to solve it: JavaScript jQuery Animate to Auto Height
http://jsfiddle.net/tVxNc/1/
$("#navContainer").hover(function(){
    var $navContainer = $("#navContainer");
    var $defaultHeight = $navContainer.height();
    var $autoHeight = $navContainer.css('height', 'auto').height();
    $("#navContainer").css('height', $defaultHeight).animate({"height": $autoHeight}, 400, 'swing');
}, function(){
    $("#navContainer").animate({"height": "80px"}, 400, 'swing');
});