Добавление масштабируемого изображения div в немасштабируемое окно просмотра на мобильных устройствах

Рассмотрим следующий метатег viewport:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui" />

Содержимое на странице не является масштабируемым и мобильным. Иногда мне нужно наложить большое изображение поверх него и разрешить пользователю увеличивать масштаб изображения.

#overlay_div {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background-color: #dddddd;
    z-index: 550000;
    overflow: scroll;
    -webkit-overflow-scrolling: touch;
}

<div id="overlay_div">
    <img src="largeimage.jpg" width="100%">
</div>

В настоящее время я знаю два возможных варианта:

  • Программно изменить метаданные в окне просмотра, чтобы разрешить масштабирование пользователя (возможные последствия для браузера, также вызывает недопустимое масштабирование содержимого под шкалой).
  • Используйте hammer.js для ручного управления событием пинча и соответствующим образом масштабируйте div/изображение (кажется, очень сложные возможные последствия для совместимости).

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

Спасибо

Ответы

Ответ 1

Я не уверен, что это ваш случай, но обычно я предпочитаю делать ссылку на изображение (а) на исходное изображение. Мобильные браузеры могут обрабатывать эту ситуацию, открывая изображение в режиме full screen. Затем пользователь может делать все, что захочет, с изображением или может вернуться на главную страницу.

Ответ 2

В общем, я бы пошел с масштабируемой версией, например @Paulie_D; поэтому используйте это на всех ваших страницах:

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

Вот рекомендация Google.

Если у вас действительно нет другого выбора, я бы рекомендовал открыть изображение в той же вкладке/окне браузера с тегом meta, показанным выше, и обратной ссылкой для навигации. Таким образом, доступен собственный пинч-зум.

Это пример такой реализации (нужен мобильный пользовательский агент): https://m.notebooksbilliger.de/notebooks/hp+compaq+15+h024sg