Для вычисления высоты я использую вот эти функции
//-- Определение высоты и ширины окна браузера и окна контента вместе с невидимой частью --//
var ua = navigator.userAgent.toLowerCase();
var isOpera = (ua.indexOf('opera') > -1);
var isIE = (!isOpera && ua.indexOf('msie') > -1);
function getDocumentHeight(){ // высота всей страницы вместе с невидимой частью
return Math.max(document.compatMode!='CSS1Compat'?document.body.scrollHeight:document.documentElement.scrollHeight,getViewportHeight());
}
function getDocumentWidth(){ // ширина всей страницы вместе с невидимой частью
return Math.max(document.compatMode!='CSS1Compat'?document.body.scrollWidth:document.documentElement.scrollWidth,getViewportWidth());
}
function getViewportHeight(){ // высота браузера
return ((document.compatMode||isIE)&&!isOpera)?(document.compatMode=='CSS1Compat')?document.documentElement.clientHeight:document.body.clientHeight:(document.parentWindow||document.defaultView).innerHeight;
}
function getViewportWidth(){ // ширина браузера
return ((document.compatMode||isIE)&&!isOpera)?(document.compatMode=='CSS1Compat')?document.documentElement.clientWidth:document.body.clientWidth:(document.parentWindow||document.defaultView).innerWidth;
}
// пример: ih = getDocumentHeight();
//-- END --//
работают в ИЕ 7-9, мозиле, опере, сафари, хроме
возможно на ее основе ты сможешь решить свой вопрос