Кто-либо знает, как получить размер в пикселях или значении масштаба области просмотра после того, как пользователь зажал или дважды коснулся к увеличению / на странице в JavaScript?
Я попытался использовать window.innerWidth, но у меня были смешанные результаты. Иногда это, кажется, точно дает число пикселей, которые область просмотра показывает, однако, если я увеличу масштаб пути на странице и затем сделаю то большое повышение для уменьшения масштаба назад, window.innerWidth будет приблизительно 600-700 даже при том, что это только показывает ~200px страницы. Страница только 400 пкс шириной, и она не показала изменчивое, "Вы зашли слишком далеко" фон, который Вы видите, когда Вы уменьшаете масштаб вне размера страницы.
Если я делаю маленькие повышения для увеличения и уменьшения масштаба window.innerWidth, кажется, работает просто великолепно. К сожалению, я не могу полагаться на пользователя, только делающего маленькие жесты повышения :)
Я также попытался использовать свойство масштаба на объекте-событии жеста, но я нашел это ненадежным, потому что Вы не всегда знаете начальный масштаб, когда Вы перезагружаете страницу или используете назад/вперед кнопки для навигации к ней даже когда с помощью метатега для определения его.
В конечном счете я пытаюсь сделать приложение, которое знает, когда пользователь пытается уменьшить масштаб вне максимального уровня масштабирования поэтому, если существует другой способ сделать это, я интересуюсь слушанием об этом :)
Вот код, который я использую для получения innerWidth:
document.body.addEventListener('gestureend', function (evt) {
console.log(window.innerWidth); // inaccurate when doing large pinch gestures
}, false);
Спасибо!
Если вы пытаетесь ограничить только максимальный уровень масштабирования, вы можете использовать специфический для Safari тег управления viewport:
<meta name="viewport" content="maximum-scale=2.0">
Подробности смотрите в спецификации метатега viewport для мобильных устройств Safari viewport meta tag spec.