Как получить высоту области просмотра на мобильном устройстве независимо от текущего состояния скрытия/отображения строки URL?

На мобильных устройствах (например, Chrome на Android) высота области просмотра изменяется в зависимости от того, скрыта ли строка URL/адреса или нет, которая изменяется в зависимости от того, прокручиваете ли вы страницу вверх или вниз.

Учитывая это, мне нужны 2 переменные:

  1. Высота области просмотра, если отображалась панель URL (независимо от фактического состояния).
  2. Высота области просмотра, если панель URL не отображалась (независимо от фактического состояния).

Другими словами: «минимальная» и «максимальная» высота области просмотра. Как мне это сделать? Я знаю только, как получить:

  • Высота области просмотра с учетом текущего состояния строки URL (отображается/не отображается).

Выполнив: Math.max(document.documentElement.clientHeight, window.innerHeight || 0) (источник: https://stackoverflow.com/a/8876069/473368).


person 01AutoMonkey    schedule 27.05.2018    source источник
comment
Я предполагаю, что это возможно только на родном языке программирования мобильного телефона. %)P Другая идея, иди и собирай data, когда это возможно. Подумайте о пользователе, который когда-нибудь прокручивает вверх и вниз. И соответствующее поведение URL-Bar.   -  person deEr.    schedule 27.05.2018


Ответы (1)


Для этого используйте свойство window.outerHeight:

Window.outerHeight получает высоту в пикселях всего окна браузера. Он представляет собой высоту всего окна браузера, включая боковую панель (если она развернута), хром окна и границы/ручки изменения размера окна.

Чтобы расширить свою функцию, просто сравните window.outerHeight и window.innerHeight:

let maxHeight = Math.max(window.innerHeight || 0, window.outerHeight || 0);
let minHeight = Math.min(window.innerHeight || 0, window.outerHeight || 0);
console.log(maxHeight, minHeight);

person Luca Kiebel    schedule 27.05.2018
comment
Это просто дает вам текущую высоту окна просмотра и высоту всего окна. На самом деле мне нужны высота области просмотра без строки URL и высота области просмотра с полосой URL. высота всего окна не является высотой окна просмотра без строки URL. - person 01AutoMonkey; 31.05.2018