I had a large banner with multiple layers and animation going on. I was trying to fade out a 1000px+ by 400px or so image along with other moving objects. In addition to that the image had some transparency in it, so some solutions of putting a background in it would not apply to this. The problem was that the image would just disappear instead of fading.
Use the animate jQuery function. Once I changed to using the animate function the fade out worked perfectly. I think the animate is faster because it does not change the visibility of an element. In other words it does not hide or show the element.