Направление увеличение высоты зависит от того, где находится элемент в потоке и как позиционирован.
В любом случае анимируя высоту, вам нужно еще опускать/поднимать сам элемент на половину от его новой высоты, соответственно, для этого можно использовать свойство transform: translateY(), если вам нужно поднять вверх указываете отрицательное значение на которое нужно приподнять или положительное, если нужно опустить элемент.