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');
});