Android Google Chrome дает странные значения для внутренней ширины/высоты при вращении и изменении размера холстаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android Google Chrome дает странные значения для внутренней ширины/высоты при вращении и изменении размера холста

Сообщение Anonymous »

Я получаю странные значения InnerWidth и InnerHeight на своем устройстве Android, используя Chrome.
Минимальный код ниже показывает это.

Код: Выделить всё

  window.onresize = function() {
let ScreenWidth = window.innerWidth;
let ScreenHeight = window.innerHeight;

console.log("w: " + ScreenWidth);
console.log("h: " + ScreenHeight);

let canvas = document.getElementById('canvas');

// Woa! This is the mischief.
canvas.style.width = ScreenWidth + "px";
canvas.style.height = ScreenHeight + "px";
};

// Dispatch the event.
window.dispatchEvent(new Event('resize'));
Итак, у меня есть пустая HTML-страница с элементом холста. Код запрашивает InnerWidth и InnerHeight и устанавливает для него ширину и высоту стиля Canvas CSS, чтобы он заполнил всю страницу. Просто и прямолинейно. На ПК работает нормально.
Теперь к вопросу. Первое принудительное событие изменения размера предназначено для немедленного изменения масштаба холста. Мои значения в console.log(): 360, 649.
Когда я поворачиваю телефон, событие отправляется снова, и значения составляют 705, 274. Несколько отличается из-за заголовка браузера (адресной строки), но разумные значения.
Снова поворачиваем обратно! Теперь значения 705, 1271. Я ожидал, что они вернутся к 360, 649.
Что происходит?! Если я удалю линии, меняющие холст w и h, «ошибка» исчезнет, ​​и вращение телефона вперед и назад будет правильно переключаться между 360, 649 и 705, 274.
Может ли это быть связано с тем, что я установил ширину холста на 705 при вращении? Но InternalWidth должен отражать фактическую область просмотра, а не ширину контента, или я неправильно читаю документацию?
https://developer.mozilla.org/en-US/doc ... innerWidth

Изменить:
Похоже, это исправляет несоответствие:
От: Кому: Я понятия не имею, почему, но добавление минимального масштаба=1 приводит к тому, что ширина и высота возвращаются к одному и тому же значению при повороте экрана, как и ожидалось. Если кто-то знает, почему это так, пожалуйста, объясните!

Подробнее здесь: https://stackoverflow.com/questions/799 ... tation-and
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»