When you add position:absolute;
to any element in the DOM
(in english) it gives up it's space just like float
does. there isn't a way around this unless you add the height to the body.
Basically body doesn't know that #fly is there so body has no height.
If you remove position:absolute;
you will see
document.height
will work for you in this case