Как получить размеры экрана, окна и веб-страницы в JavaScript?

Original author: Dmitri Pavlutin
  • Translation


Доброго времени суток, друзья!

Представляю Вашему вниманию перевод небольшой заметки «How to Get the Screen, Window, and Web Page Sizes in JavaScript» автора Dmitri Pavlutin.

Для определения ориентации окна браузера (ландшафтной или портретной) можно сравнить его ширину и высоту.

Однако во всевозможных доступных размерах легко запутаться: существуют размеры экрана, окна, веб-страницы и т.д.

Что означают эти размеры и, главное, как их получить? Именно об этом я и собираюсь рассказать.

1. Экран


1.1. Размер экрана

Размер экрана — это ширина и высота всего экрана: монитора или мобильного дисплея.



Получить информацию о размере экрана можно с помощью свойства screen объекта window:

const screenWidth = window.screen.width
const screenHeight = window.screen.height

1.2. Доступный размер экрана

Доступный размер экрана — это ширина и высота активного экрана без панели инструментов операционной системы.



Для получения доступного размера экрана снова обращаемся к window.screen:

const availableScreenWidth = window.screen.availWidth
const availableScreenHeight = window.screen.availHeight

2. Окно


2.1. Размер внешнего окна (или внешний размер окна)

Размер внешнего окна — это ширина и высота текущего окна браузера, включая адресную строку, панель вкладок и другие панели браузера.



Получить информацию о размере внешнего окна можно с помощью свойств outerWidth и outerHeight объекта window:

const windowOuterWidth = window.outerWidth
const windowOuterHeight = window.outerHeight

2.2. Внутренний размер окна (или размер внутреннего окна)

Внутренний размер окна — это ширина и высота области просмотра (вьюпорта).



Объект window предоставляет свойства innerWidth и innerHeight:

const windowInnerWidth = window.innerWidth
const windowInnerHeight = window.innerHeight

Если мы хотим получить внутренний размер окна без полос прокрутки, то делаем следующее:

const windowInnerWidth = document.documentElement.clientWidth
const windowInnerHeight = document.documentElement.clientHeight

3. Размер веб-страницы


Размер веб-страницы — это ширина и высота отображаемого содержимого (отрендеренного контента).



Для получения размера веб-страницы используйте следующее (включает в себя внутренние отступы страницы, но не включает границы, внешние отступы и полосы прокрутки):

const pageWidth = document.documentElement.scrollWidth
const pageHeight = document.documentElement.scrollHeight

Если pageHeight больше, чем внутренняя высота окна, значит, присутствует вертикальная полоса прокрутки.

4. Заключение


Надеюсь, теперь Вы понимаете, как получать различные размеры.

Размер экрана — это размер монитора (или дисплея), а доступный размер экрана — это размер экрана без панелей инструментов ОС.

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

Наконец, размер веб-страницы — это размер контента.

Благодарю за внимание, друзья!

Similar posts

Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 5

    +3
    Эээ. Серьезно?
      +2
      Не раскрыт вопрос влияния наличия скролбара на размеры, в разных браузерах и в разных ОС.
        +1
        Не раскрыт window.visualViewport. А это очень-очень важные размеры, как только речь заходит за мобилобраузеры.
          0

          Можно ещё про iframe упомянуть.

            0
            Соглашусь с другими комментаторами, не раскрыты проблемы и кейсы. А так тема довольно интересная, но пока выглядит как небольшое пояснение к документации и не более. (Да и мы помним, что это перевод маленькой заметки, с учётом размера текста вполне себе хороший)

            Only users with full accounts can post comments. Log in, please.