Пробовал так же через overflow:hidden; + opacity:0;
и при исчезновении делаем размер блока в 1px убираем в угол, или за пределы экрана. Но тогда появление блока, именно анимация, происходит от того места, куда блок убрали. А требуется, плавное появление в центре экрана.
Andrew, при анимации только прозрачности (opacity), блок перекрывает все нижние слои. Так как позиционирование появляющегося/исчезающего блока требуется абсолютное.