2012-08-24 2 views
95

Я уверен, что я делаю простую ошибку, но я просто предупреждаю $(window).height() и возвращает то же значение, что и $(document).height().

Я нахожусь на 13-дюймовой MBA и моей высоте окна моих браузеров при максимальном размере между 780px - 820px (примерно), но каждый раз, когда он возвращает высоту окна, идентичную высоте окна, в каждом случае на сайте я работающих на нем более 1000px.

Что здесь происходит?

alert($(window).height()); 
alert($(document).height()); 
+0

то, что браузер вы работаете? –

+0

Chrome, FF, Safari в OSX – Fraser

+0

Эта проблема начала появляться с jquery-1.8.0, более ранние версии jquery сделали это правильно (даже без набора DOCTYPE) – ralhei

ответ

215

С тегом doctype Chrome сообщает о том же значении для обоих вызовов.

Добавление строгого типа doctype, такого как <!DOCTYPE html>, приводит к тому, что значения работают как рекламируемые.

Тег doctype должен быть очень первое, что в вашем документе. Например, у вас не может быть никакого текста, даже если он ничего не отображает.

+7

Cookies на вашем пути .... – richsage

+11

FireFox также делает эту отчетность, если вы не используете строгий doctype, такой как

+0

, также неправильный doctype делает twitter bootstrap scrollspy, чтобы действовать странно по той же причине, что $ (window) .height () возвращает высоту документа. – nidheeshdas

1

Я думаю, что ваш документ должен быть с достаточно места в окне, чтобы отобразить его содержимое. это означает, что нет необходимости прокручивать вниз для просмотра большей части документа. В этом случае высота документа будет равна высоте окна.

+0

Документ проходит ниже нижней части окна на каждой странице. – Fraser

0

Задать вопрос и ответить на это: Difference between screen.availHeight and window.height()

Есть фотографии, поэтому вы можете увидеть различия. Надеюсь это поможет.

В основном, $(window).height() дает максимальную высоту внутри окна браузера (viewport), а $(document).height() дает высоту документа внутри браузера. Большую часть времени они будут точно такими же, даже с полосами прокрутки.

14

У меня была такая же проблема, и с ее помощью она была решена.

var w = window.innerWidth; 
var h = window.innerHeight; 
+0

так странно, я тоже использую правильный doctype. ваш внутренний контроль исправил мою проблему! Спасибо –

+1

Такая же проблема - имел действительный doctype и все. Чуть больше кросс-платформенных: 'var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; ' –

0

Его действительно работает, если мы используем Doctype на нашем веб-страницы JQuery (окно) вернет высоту вид порта еще он возвращает полную высоту документа.

Определить следующие метки на верхней части веб-страницы:

+2

Кажется, вы забыли включить код в свой ответ –

+0

используйте этот тег поверх вашей веб-страницы:

Смежные вопросы