Большинство браузеров на мобильных устройствах используют виртуальный видовой экран, который не соответствует реальному дисплею.Есть несколько причин, по которым это полезно, наиболее важными, на мой взгляд, являются:
- Маленькое устройство может показаться достаточно большим для обычной веб-страницы старой школы, чтобы не нарушать его макеты, предназначенные для экранов рабочего стола.
- Используется для визуализации HTML-движка больше, чем видимая в данный момент часть страницы, что обеспечивает плавную прокрутку и масштабирование.
Однако это нарушает некоторые стандартизированные ожидания поведения.подумайте.
- В частности, страница не знает о своей видимой области, поэтому JS-объекты, такие как всплывающие окна или уведомления, больше не работают правильно.
- Кажется, что это нарушает загрузку встроенных ресурсов (например, миниатюр, видеообъектов, бесконечных списков) по требованию, если пользователь перемещает элемент в представление.
- Это также приводит к непредсказуемому поведению с макетомJS, например, обработчики onresize, добавляющие макет страницы, могут легко изменить размер страниц, таким образом, изменение размера области просмотра может даже повторить запуск события onresize.
Должен ли я считать это еще неработающим, но когда-нибудь-Исправлено поведение и придерживаться небольших обходных путей на каждой сломанной странице, или я должен отказаться от каких-либо ожиданий по onresize, window.innerWidth и т. д. и вернуться к более статическим макетам, больше не полагаясь на идею области просмотра?