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

i1qyvj2-zautrxqmdjclaxdcsmu.png

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

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

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

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

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

1. Экран


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

irvgbswhhmmnu69bl72p0jluuig.png

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

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


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

xjzotd21-ilbfpnjvhubc9zwcps.png

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

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


2. Окно


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

km7di3pawv3x0npfgjuipp68ztm.png

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

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


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

1ior2hcq3noocxcysdtbfyb8ba0.png

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

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


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

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


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


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

fb8drbl7nwtaumihoj7uqhbhhm8.png

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

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


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

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


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

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

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

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

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

© Habrahabr.ru