I found this code to achieve the desired effect and tried it on JSFiddle
http://jsfiddle.net/AndyMP/7F9tY/366/
It seems to work in that it fades the image in
.ready() does not fire they way you think it does, see the 'load' jQuery event handler
$("#preload").load(function(evt){ $(this).fadeIn(1000); });