The .fadeOut() method to use visibility property instead of display property
Use jQuery's fadeTo() and then have a callback set the visibility. Example:
$('#fade').on("click", function(){
$(this).fadeTo(500, 0, function(){
$(this).css("visibility", "hidden")
}) // duration, opacity, callback
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<a href="#" id="fade">Click to Fade</a>
<div>This won't move</div>
animate with css opacity seems to achieve a similar effect.
$('#element').animate({opacity: 0}, 1000);
Run the same with opacity: 1 to fade back in.
Credit.