I basically had the same problem as the person in this Stackoverflow post.
The suggested solution was:
fadeIn() methods all change the DOM rather than the CSS you've loaded in.
In this case you change the visabilty style first using
hide() changes the display style to
none and then
fadeIn() changes the display style to
block but does so by tweening the transpaency.