Проблема, с которой вы столкнулись, вызвана тем, что, как только элемент получает свойство display: none;
(в конце fadeOut()
), браузер будет обрабатывать его как имеющий нулевую высоту, заставляя все, что ниже него, перепрыгивать до.
Таким образом, на ум приходят два обходных пути: вы можете либо обернуть #main
div
другим div
, который имеет height
с вашим #main
div
, чтобы он занимал это пространство или Вы можете использовать абсолютное позиционирование, чтобы держать все, что находится ниже вашего #main
div
в той же позиции.
Надеюсь, это поможет!