front-end
October 9, 2020

Як отримати розміри екрана, вікна і веб-сторінки в JavaScript

09.10.20. ⏰Час прочитання - 3,5 хв

Для визначення вікна браузера (ландшафтного чи портретного) достатньо порівняти його ширину та висоту. Але у всіх можливих доступних нам розмірах можна легко заплутатись, тому що існують розміри екрану, вікна, веб-сторінки і так далі. Що означають ці розміри, а головне, як їх отримати? Ловіть коротку замітку.

Екран

Розмір екрана

Розмір екрана — це ширина та висота всього екрана: монітора та мобільного дисплею.

Отримати інформацію про розмір екрана можна за допомогою властивості screen об'єкта window:

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

Доступний розмір екрана

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

Щоб отримати доступний розмір екрана, потрібно знову звернутися до window.screen:

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

Вікно

Розмір зовнішнього вікна

Зовнішній розмір вікна — це ширина та висота поточного вікна браузера, включаючи адресний рядок, панель вкладок та інші панелі браузера.

Отримати інформацію про розмір зовнішнього вікна можна за допомогою властивостей outerWidth та outerHeight об'єкта window:

const windowOuterWidth = window.outerWidth 
const windowOuterHeight = window.outerHeight
Внутрішній розмір вікна

Розмір внутрішнього вікна — це ширина і висота області перегляду (в'юпорта).

Об'єкт window надає властивості innerWidth та innerHeight:

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

Якщо ми хочемо отримати внутрішній розмір вікна без ділянок прокрутки, то треба зробити наступне:

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

Розмір веб-сторінки

Розмір веб-сторінки — це ширина та висота всього вмісту (відрендереного контенту).

Щоб отримати розмір веб-сторінки, використовуйте наступне (містить внутрішні відступи сторінки, але не включає межі, зовнішні відступи та смуги прокрутки):

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

Якщо pageHeight більша, ніж внутрішня висота вікна, тоді присутня вертикальна смуга прокрутки.

Висновок

Сподіваємось, тепер Ви розумієте, як отримувати різні розміри.

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

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

І розмір веб-сторінки — це розмір контенту.