Я працюю над веб-програмою на одній сторінці, яка зазвичай використовується в мобільних пристроях. Однією з його особливостей є режим карти, який тимчасово переймає все вікно браузера; масштаб відстані та деякі елементи керування додаються до чотирьох кутів карти. Ось невеликий знімок карти, щоб ви могли сказати, про що я говорю:
Карта реалізована у вигляді <div>
а position: fixed
і всі чотири координати нульові; Я також тимчасово встановити <body>
в overflow: hidden
той час як карта видно обробляти випадок основного дисплея додатки бути прокручуються від початку координат. Цього достатньо для того, щоб карта працювала саме так, як мені хочеться в браузерах настільних ПК. Мобільні браузери також вимагали, щоб я надавав мета-тег вікна перегляду з чимось на зразок "width=device-width,user-scalable=no"
того, щоб видима область вікна точно відповідала області перегляду.
Все це спрацювало чудово кілька років тому, коли я спочатку писав цю програму, але десь уздовж лінії iOS Safari перестав вшановувати будь-який із варіантів мета-огляду, пов’язаний із масштабуванням - очевидно, занадто багато сайтів неправильно застосовували тег, в результаті чого текст був нечитано малим, все ще незручне. Наразі, якщо ви ввімкнули карту в цьому веб-переглядачі, ви, ймовірно, отримаєте трохи збільшене зображення, яке відрізає ці кнопки праворуч і знизу - і ви нічого не можете з цим зробити, оскільки всі дотики трактуються як маштаб масштабування / панорамування карти, а не прокрутка браузера. Карта не дуже корисна без функцій, доступних через ці кнопки - а без правої верхньої кнопки ви навіть не можете закрити карту. Єдиний вихід - це перезавантажити сторінку, що може призвести до втрати збережених даних.
Я обов'язково додаю використання history.pushState
/, onpopstate
щоб накладка на карту вела себе як окрема сторінка. Ви можете вийти з режиму карти за допомогою кнопки "Назад" браузера, але це не стосується решти втрати функціональності через відсутні кнопки.
Я розглядав можливість використання .requestFullscreen()
для накладання карти, але всюди не підтримується, щоб програма в іншому випадку була корисною. Зокрема, це, мабуть, зовсім не працює на iPhone, а на iPad ви отримуєте смужку стану та величезну кнопку "X", що накладає ваш вміст - мій масштаб відстані, ймовірно, вже не читається. Все одно це не семантично те, що я дуже хочу - мені потрібно повне вікно , а не повний екран.
Як змусити дисплей із повним вікном працювати на сучасних браузерах? Вся інформація, яку я можу знайти в темі, розповідає про використання тегу метапогляду, але, як я вже згадувала, це більше не працює.