Определите фактический размер просмотра в браузере - PullRequest
0 голосов
/ 24 июня 2010

Я пытаюсь определить фактический размер viewPORT текущего окна браузера. Я пробовал:

  • window.innerHeight / innerWidth
  • document.documentElement.clientHeight / clientWidth
  • document.body.clientHeight / clientWidth

Все возвращают полный размер страницы, а НЕ область просмотра.

В конечном итоге я пытаюсь заставить всплывающее меню появляться на экране (в окне просмотра). Прямо сейчас, когда он отображается, он может показываться под свитком, и пользователи не довольны этим. Я знаю X, Y, где они нажали. Мне просто нужно сравнить это с размером области просмотра (с размером всплывающего окна), чтобы увидеть, будет ли оно отображаться за кадром.

Следует отметить, что страница отображается в IFRAME, поэтому, если мне нужно подняться на один уровень выше, чтобы получить правильное значение, я могу это сделать.

Ответы [ 3 ]

2 голосов
/ 24 июня 2010
  • window.innerHeight / innerWidth

То, что однозначно дает , дает вам размер области просмотра (в данном случае, размер внутри вашего iframe), но он недоступен в IE.

  • document.documentElement.clientHeight / clientWidth

Это дает вам размер области просмотра, когда браузер находится в стандартном режиме. Обычно используется как запасной вариант для IE.

  • document.body.clientHeight / clientWidth

Это дает вам высоту области просмотра в режиме Quirks . Вы не хотите быть в режиме Причуд. Проверьте <!DOCTYPE вашего документа.

Мне просто нужно сравнить это с размером области просмотра

Тогда вам также придется взглянуть на document.documentElement.scrollTop / scrollLeft.

0 голосов
/ 24 июня 2010

Видимо, перейдя к родительскому документу, я смог получить правильное значение.

Спасибо!

0 голосов
/ 24 июня 2010

Попробуйте

document.getElementById("").offsetWidth

Заполните вышеуказанный код различными идентификаторами элементов, попробуйте использовать тег body или div-обертку.

...