Как получить высоту и ширину области просмотра браузера без полос прокрутки с помощью jQuery?
Вот что я пробовал до сих пор:
var viewportWidth = $("body").innerWidth();
var viewportHeight = $("body").innerHeight();
Это решение не учитывает полосы прокрутки браузера.
Ответы:
Больше информации
Однако использование jQuery не обязательно для получения этих значений. Использовать
чтобы получить размеры без учета полос прокрутки, или
чтобы получить все окно просмотра, включая полосы прокрутки.
источник
Не используйте jQuery, просто используйте javascript для правильного результата:
Это включает ширину / высоту полосы прокрутки:
Это исключает ширину / высоту полосы прокрутки:
источник
Вот общий JS, который должен работать в большинстве браузеров (FF, Cr, IE6 +):
источник
Вы используете неправильные вызовы методов. Область просмотра - это «окно», открытое в документе: сколько его вы можете видеть и где.
Использование
$(window).height()
не даст вам размер области просмотра, это даст вам размер всего окна, который обычно равен размеру всего документа, хотя документ может быть даже больше.Чтобы получить размер фактического окна просмотра, используйте
window.innerHeight
иwindow.innerWidth
.https://gist.github.com/bohman/1351439
Не используйте, например
$(window).innerHeight()
, методы jQuery, поскольку они дают неправильные числа. Они дают вам высоту окна, а неinnerHeight
.источник
window.innerWidth
возвращается ширина области просмотра + ширина полосы прокрутки. что я могу сделать в этой ситуации?Описание
Следующее даст вам размер области просмотра браузеров.
Образец
Больше информации
источник
Как предложил Кайл, вы можете измерить размер окна просмотра браузера клиента таким образом, не принимая во внимание размер полос прокрутки.
Пример (размеры области просмотра БЕЗ полос прокрутки)
В качестве альтернативы, если вы хотите найти размеры окна просмотра клиента с учетом размера полос прокрутки, то этот пример ниже лучше всего вам подходит.
Сначала не забудьте установить тег тела на 100% ширины и высоты, чтобы убедиться, что измерения точны.
Пример (размеры области просмотра с полосами прокрутки)
источник
Скрипт
$(window).height()
работает хорошо (показывает высоту области просмотра, а не документ с высотой прокрутки), НО необходимо, чтобы вы правильно поместили тег doctype в свой документ, например, эти doctype:Для html5:
<!doctype html>
для переходного html4:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Вероятно, тип документа по умолчанию, принятый некоторыми браузерами, таков, что
$(window).height()
принимает высоту документа, а не высоту браузера. Со спецификацией doctype она удовлетворительно решена, и я почти уверен, что вы, ребята, избежите «изменения переполнения прокрутки на скрытое, а затем обратно», что, извините, немного грязный трюк, особенно если вы этого не сделаете • задокументируйте его в коде для будущего использования программистом.Более того, если вы пишете сценарий, вы можете изобрести тесты в помощь программистам в своих библиотеках, позвольте мне изобрести пару:
источник
источник
Использование jQuery ...
$ (document) .height () & $ (window) .height () вернет те же значения ... ключ состоит в том, чтобы сбросить отступы и поля тела, чтобы вы не получали прокрутку.
Надеюсь это поможет.
источник
Я хотел, чтобы мой веб-сайт выглядел по-другому, для экрана шириной и маленьким экраном. Я сделал 2 файла CSS. В Java я выбираю, какой из двух CSS-файлов использовать в зависимости от ширины экрана. Я использую функцию PHP
echo
сecho
некоторым javascript в -функции.мой код в
<header>
разделе моего PHP-файла:источник