Отключение функции pinch to zoom на веб-странице
Быстрый ответ
Чтобы отключить возможность масштабирования с помощью пальцев на мобильных устройствах, добавьте следующий мета-тег в раздел <head>
вашего HTML-документа:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
Такой код отключает возможность масштабирования (user-scalable=no
) и устанавливает фиксированный масштаб (maximum-scale=1.0
), зафиксировав таким образом размер веб-страницы.
Браузеры – умственные гиганты: охватим все аспекты
Браузеры, стремясь обеспечить доступность, могут игнорировать ограничения на масштабирование. Для достижения надёжности используйте комбинацию из CSS и JS:
- В CSS укажите
touch-action: none;
для элементовhtml
иbody
, тем самым отключив масштабирование.
/* CSS – запрет на прикосновения! 💃 */
html, body {
touch-action: none;
}
- В JavaScript отмените все попытки касаний путём обработки событий жестов:
/* JS – Праздник подошёл к концу, господа... 🎉🚫 */
document.addEventListener('gesturestart', function(e) {
e.preventDefault();
}, false);
document.addEventListener('gesturechange', function(e) {
e.preventDefault();
}, false);
document.addEventListener('gestureend', function(e) {
e.preventDefault();
}, false);
- Обманите браузер iOS Safari, установив значение
document.body.style.zoom = 0.99;
. Это приводит к тому, что масштабирование "останавливается на полпути".
Визуализация
Представьте, что пользователи пытаются изменить размер вашего сайта, как будто это пластилиновая модель.
Ситуация: У вас есть пластилин (🧱), и вы хотите, чтобы он сохранял форму.
Отключение масштабирования пинч-жестом – это как выпекание пластилина: после этого он более не сможет изменить свою форму.
До: 🧱💪🤏👀 (Лепим и растягиваем пластилин.)
После: 🧱🔒✋👀 (Пластилин испекся, теперь он твердый и неизменяем.)
Строгие настройки в HTML и CSS работают как духовка, зафиксировав форму вашего веб-сайта.
Рассмотрим вопросы: Адаптивность, отображение и этика масштабирования
Когда вы отключаете масштабирование, не забудьте об адаптивности и доступности:
- Используйте относительные единицы измерения для ширины вместо фиксированных.
- Применяйте медиазапросы для оптимизации разметки веб-страниц для различных устройств.
- Учитывайте потребности пользователей с ограничениями зрения.
- Проведите тестирование сайта в различных браузерах и устройствах с помощью инструментов типа BrowserStack.
Проверка на совместимость: старые устройства и "непокорные" браузеры
- Не забывайте о старых гаджетах! Добавьте
<meta name="HandheldFriendly" content="true">
. - Используйте modernizr или другие инструменты для определения функционала браузера и создания альтернативных способов взаимодействия.
Пользовательский опыт: Функциональность против неудобств
Будьте осторожны, отключая масштабирование:
- Могут возникнуть претензии со стороны пользователей, если они не могут увеличить контент.
- Отсутствие возможности масштабирования может затруднить чтение текста или просмотр изображений для некоторых пользователей.
- Это может негативно повлиять на удобство использования сайта и лояльность пользователей.
Завершение: Этика, потребности пользователей и удобство использования
В случае отключения пинч-масштабирования важно учесть потребности и опыт пользователей:
- Гарантируйте удобство чтения и навигации по сайту.
- Управление содержимым сайта со стороны пользователя является неотъемлемым аспектом высококачественного пользовательского опыта.
Полезные материалы
- События касания – Веб-API | MDN — Информация о сенсорных событиях.
- ios10 – как отключить масштабирование через viewport в iOS 10+ safari? – Stack Overflow — Рекомендации по работе с масштабированием в Safari.
- События указателя | W3C — Руководство по событиям, связанным с касаниями и движениями мыши.
- Понимание критерия успеха 2.5.1: Жесты указателя | WAI | W3C — Рекомендации по созданию доступности в интернете.
- GitHub – AlloyTeam/AlloyFinger: Очень компактная библиотека жестов multitouch для web — Библиотека для реализации мультитач-жестов.