Вимкніть масштабування на мобільному Інтернеті


78

Я хочу відключити Pinch and Zoom на мобільних пристроях.

Яку конфігурацію слід додати до області перегляду?

Посилання: http://play.mink7.com/n/dawn/


12
Сподіваюся, ви не створюєте веб-сайт для організації, яка базується у Великобританії - якщо ви це зробите, то відключення функції збільшення за допомогою функції "зменшити масштаб" (фактично функція доступності) призведе до порушення кількох законів за активну дискримінацію людей із вадами зору ... Ніколи немає вагомих причин відключити цю функціональність ... Ніколи!
Майк Інш

19
Не завжди погана ідея. Якщо ви робите додаток, як веб-сторінку, ось що я б зробив. Ви не можете завжди використовувати магазин додатків, тому це наступне найкраще.
Шумії

11
Будь ласка, припиніть це робити. Люди з вадами зору не можуть переглядати веб-сайти, не наближаючи їх, і це ускладнює наше життя.
Джек Маркетті,

32
Не могли б ви уявити собі створення програми в стилі "Google Maps", і коли ви вперше натискаєте, щоб збільшити, ви більше не бачите КОРОБКУ ВХОДУ ТЕКСТУ? Або АВТОРСЬКІ СИМВОЛИ? Іноді ви не хочете, щоб ВСЕ ПРИЛОЖЕННЯ збільшувалось. Іноді вам просто потрібно, щоб ЧАСТИНА ЦЕГО збільшилась.
Айеліс,

8
якщо ви розробляєте адаптивну односторінкову веб-програму, масштабування (також автоматичне масштабування) справді порушує робочий процес, оскільки браузер автоматично збільшує масштаб, якщо ви випадково двічі клацніть на порожньому місці.
Вежа Джиммі

Відповіді:


169

EDIT: Оскільки це постійно коментується, ми всі знаємо, що не повинні цього робити. Питання полягав у тому, як мені це робити, а не я повинен це робити.

Додайте це у свій для мобільних пристроїв. Тоді зробіть свою ширину у відсотках, і у вас все буде добре:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

Додайте це для пристроїв, які теж не можуть використовувати область перегляду:

<meta name="HandheldFriendly" content="true" />

29
я це додав. але все одно я можу стискати та масштабувати.
Харша М.В.

дякую, у мене було значення порту за замовчуванням. так його переїжджали
Харша М.В.

1
Яка різниця між цим та stackoverflow.com/a/4472910/198348 ?
Ехтеш Чоудхурі

3
@Shurane Це різні запитання?
SpaceBeers

9
2019: PWA зараз - це річ, і це рішення для запобігання дивовижній поведінці PWA на мобільних пристроях :)
Джессі

14

це запобіжить будь-які дії користувача масштабування в сафарі ios, а також запобіжить функцію "збільшення до вкладок":

document.addEventListener('gesturestart', function(e) {
    e.preventDefault();
    // special hack to prevent zoom-to-tabs gesture in safari
    document.body.style.zoom = 0.99;
});

document.addEventListener('gesturechange', function(e) {
    e.preventDefault();
    // special hack to prevent zoom-to-tabs gesture in safari
    document.body.style.zoom = 0.99;
});

document.addEventListener('gestureend', function(e) {
    e.preventDefault();
    // special hack to prevent zoom-to-tabs gesture in safari
    document.body.style.zoom = 0.99;
});

jsfiddle: https://jsfiddle.net/vo0aqj4y/11/


1
Це працювало на сафарі macOS, і document.body.style.zoom = 0,99; навіть не було необхідним.
Кевін Барагона,


11

Кожному, хто сказав, що це погана ідея, я хочу сказати, що це не завжди погана ідея. Іноді буває дуже нудно зменшувати масштаб, щоб переглянути весь вміст. Наприклад, коли ви вводите ввід на iOS, він масштабується, щоб отримати його в центрі екрана. Після цього потрібно зменшити масштаб, оскільки закриття клавіатури не спрацьовує. Також я згоден з тим, що коли ви витрачаєте багато годин на створення чудового макета та зручності користування, ви не хочете, щоб це було зіпсовано збільшенням.

Але інший аргумент також цінний для людей із проблемами зору. Однак, на мою думку, якщо у вас є проблеми з очима, ви вже використовуєте функції масштабування системи, тому немає потреби турбувати вміст.


3
Ви повинні зробити це як коментар.
Awesomeness01,

2
На жаль, мій тодішній рівень не дозволяв мені залишати коментарі, а лише нове повідомлення, ось чому.
Тібо Рей

2
Установлення розміру шрифту до 16 пікселів для елементів форми запобіжить масштабуванню на пристроях iOS.
hellojebus

Я можу сказати, що вам не за 50. Для багатьох з нас це не те, що у нас є проблеми із зором досить серйозні, такі, що нам доводиться користуватися спеціальними пристосуваннями (навіть окулярами для читання), КРИМ при використанні веб-сторінок на наших iPad, які дизайнери вважають ідеальними завдяки своїм крихітним шрифтам. Такі сторінки говорять мені "Мені байдуже, ти вмієш це читати чи ні, старий".
crazy4jesus

2
я старший чоловік із проблемами зору, і все ж я повністю розумію, чому це іноді потрібно. "веб-сайти" не завжди призначені для використання широкою громадськістю або кожним окремим членом суспільства, так само, як було б божевільним змушувати кожного громадянина встановлювати пандуси для інвалідних візків та універсальні унітазні блоки в своїх будинках, тому що "це закон, який ви знаєте ". впевнені, що якщо ви надаєте доступ для громадськості чи наймаєте людей, то ці міркування вступають у справу в архітектурі. є, наприклад, односторінкові ігри веб-додатків, які можуть бути зруйновані, дозволяючи людям збільшувати та зменшувати масштаб.
несинхронізовано



3

Знайдено тут ви можете використовувати user-scalable=no:

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

1

Я думаю, що саме ви можете шукати - це сенсорна дія властивості CSS . Вам просто потрібно правило CSS, як це:

html, body {touch-action: none;}

Ви побачите, що він має досить хорошу підтримку ( https://caniuse.com/#feat=mdn-css_properties_touch-action_none ), включаючи Safari, а також назад до IE10.


Це також вимкне прокрутку
simonwjackson

0

Спробуйте з властивістю min-width. Дозвольте пояснити. Припустимо, пристрій із шириною екрана 400 пікселів (наприклад). Під час збільшення масштабу шрифти стають все більшими та більшими. Але ящики та div залишаються з однаковою шириною. Якщо ви використовуєте мінімальну ширину, ви можете уникнути зменшення вашого div та box.


0

Не впевнений, що це може допомогти, але я вирішив проблему стискання / масштабування (я хотів, щоб користувачі не проводили масштабування мого веб-додатка), використовуючи модуль кутового молотка:

У своєму app.component.html я додав:

<div id="app" (pinchin)="pinchin();">

і в моєму app.component.ts:

  pinchin() {
      //console.log('pinch in');
  }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.