prueba con position() en ves de offset(), sino intenta usar javascript puro sin jquery: $('objeto')[0].offsetTop
En esos casos el resultado es el mismo, me sigue mostrando cero... es muy raro...
EDIT: creo que noté que muestra el dato antes de que la página cargue completamente, aunque lo tengo en document ... ready igual lo carga antes... nose o me habrá parecido...
Ya que si pongo un timer y le digo que ejecute ese código en 5s entonces si lo va a mostrar.. sigo sin entender