jquery fadeIn leaves opacity at 0
Some CSS is overriding your div when it is hidden..Better add the opacity style to your div as 1.
Else do,
$('#MyDiv').css('opacity','1');
After your fadeIn call...
Try jQuery .fadeTo function.
.fadeTo( duration, opacity [, callback] )
.fadeTo( duration, opacity [, easing] [, callback] )
Sample:
$('#book').fadeTo('slow', 0.5, function() {
// Animation complete.
});