Включить / отключить увеличение на iPhone Safari с помощью Javascript? - PullRequest
12 голосов
/ 01 мая 2010

У меня есть 1 страница, которая имеет 2 элемента DIV, которые отображаются / скрываются в зависимости от нажатия пользователем кнопок действия с помощью JavaScript, я хочу переключать масштабирование при нажатии кнопки действия.

Я пытался использовать приведенный ниже javascript, и он меняет мета области просмотра, но не получает никакого эффекта.

Есть предложения?

var ViewPortAllowZoom = 'width=device-width;';

var ViewPortNoZoom = 'width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no;';

  function AllowZoom(flag) {
            if (flag == true) {
                $('meta[name*=viewport]').attr('content', ViewPortAllowZoom);                
            }
            else {
                $('meta[name*=viewport]').attr('content', ViewPortNoZoom);
            }
        }

Ответы [ 3 ]

19 голосов
/ 29 июля 2010

Удаление и повторное добавление метатега сработало для меня:

function AllowZoom(flag) {
  if (flag == true) {
    $('head meta[name=viewport]').remove();
    $('head').prepend('<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=10.0, minimum-scale=1, user-scalable=1" />');
  } else {
    $('head meta[name=viewport]').remove();
    $('head').prepend('<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=0" />');              
  }
}

Однако, если пользователь увеличивает, а затем переключается без увеличения, область просмотра остается увеличенной, и пользователь больше не может изменять масштаб. У кого-нибудь есть решение для этого?

7 голосов
/ 17 ноября 2010
$('body').bind('touchmove', function(event) { event.preventDefault() }); // turns off

$('body').unbind('touchmove'); // turns on
0 голосов
/ 14 марта 2017

Это шаги для отключения масштабирования:

  1. Убедите своего руководителя в том, что отключение - плохая идея (см. Статью ниже).
  2. Если он все еще хочет этого, убедить его сильнее.
  3. Если он все еще хочет этого, прочитайте эту статью и добавьте предотвратительный дефолт к запуску жестов, как описано в комментарии там: https://wouterdeschuyter.be/blog/how-to-disable-viewport-scaling-in-ios-10-you-dont-941140811

Он работает в iPhone 6 и не блокирует прокрутку.

Спасибо за ссылку, Aloober: https://stackoverflow.com/a/41166167/1409261

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...