Показать сообщение отдельно
  #9 (permalink)  
Старый 02.12.2015, 13:44
Аспирант
Отправить личное сообщение для vettel Посмотреть профиль Найти все сообщения от vettel
 
Регистрация: 07.05.2015
Сообщений: 43

Полазил по английскому нету немного, там тоже толком решения проблемы нет.
Но есть такой фикс, который хорошо работает под iOS, может кому-то интересно будет:

var getIOSWindowHeight = function() {    // Get zoom level of mobile Safari
    // Note, that such zoom detection might not work correctly in other browsers
    // We use width, instead of height, because there are no vertical toolbars :)
    var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
    // window.innerHeight returns height of the visible area. 
    // We multiply it by zoom and get out real height.
    return window.innerHeight * zoomLevel;
};

// You can also get height of the toolbars that are currently displayed
var getHeightOfIOSToolbars = function() {
    var tH = (window.orientation === 0 ? screen.height : screen.width) -  getIOSWindowHeight();
    return tH > 1 ? tH : 0;
    alert(tH);
};

Соответственно, правильная полная длина окна - сумма результатов двух функций. В случае надобности (при наличии адресс-бара) просто берется результат первой функции.

В Андроиде тоже работает, но немного по-другому - там для правильного вычисления при наличии адрессбара нужно резалт второй функции поделить на 2 где-то, хотя точного резалта все равно не будет. Это погрешность мобильных устройств.
Ответить с цитированием