Как я могу реализовать защемление / защемление с помощью Ionic?
Я использую Ionic4 и Angular8.
Я хочу сжать / раздвинуть экран на смартфоне.
Что я пробовал В index.html добавлено следующее описание.
<meta name = "viewport" content = "viewport-fit = cover, width = device-width, initial-scale = 1.0, minimum-scale = 1.0, maximum-scale = 4.0, user-scalable = yes" />
Но вопреки ожиданиям на реальной машине это не сработало.
Я тоже пробовал.
Следующее было добавлено к.
scrollX = "true"
Теперь вы можете сжимать / сжимать экран на своем смартфоне. Но я не знаю почему и почему.
Кроме того, если высота достаточно велика, чтобы требовать вертикальной прокрутки, я не могу прокручивать горизонтально после сжатия экрана.
Не знаю почему. Я хочу, чтобы после увеличения экрана работала горизонтальная прокрутка.
Пожалуйста, дайте мне знать, если кто знает как.
3 ответа
Вы можете использовать Pinch zoom for Angular
.
В модуле предусмотрены возможности увеличения, уменьшения и позиционирования изображения с помощью жестов на сенсорном экране.
Посмотрите живую демонстрацию. его легко установить.
1 - Установите пакет npm.
npm i ngx-pinch-zoom
2 - Модуль импорта в у вас ц. нравитьсяhome.module.ts
:
import { PinchZoomModule } from 'ngx-pinch-zoom';
@NgModule({
imports: [ PinchZoomModule ]
})
3 - в вашем html
<pinch-zoom>
<img src="path_to_image" />
</pinch-zoom>
Это работает в ionic 4+. Проверено на ionic 5.
Сведите пальцы, чтобы увеличить всю страницу, определенный раздел или изображение.
Вы можете сделать следующее.
<ion-content scrollX="true" scrollY="true">
...your content.
<ion-content>
Вышеупомянутый метод позволяет масштабировать всю страницу в Интернете. Не для мобильных платформ.
Для мобильных платформ. Установите щипок для увеличения - http://ivylab.space/pinch-zoom
или же
npm i ngx-pinch-zoom
следуйте за решением @AliGhassan для оставшейся настройки.
Теперь, чтобы включить масштабирование всей веб-страницы, установите теги html для ионного контента следующим образом в файле page.html.
<ion-content scrollX="true" scrollY="true">
<pinch-zoom [properties]="zoomProperties">
<ion-grid>
....contents..
</ion-grid>
</pinch-zoom>
</ion-content>
Создайте переменную для свойств масштабирования в файле page.ts следующим образом.
zoomProperties = {
"double-tap": true, // double tap to zoom in and out.
"overflow": "hidden",// Am not sure. But Documentation says, it will not render elements outside the container.
"wheel": false, // Disables mouse - To enable scrolling. Else mouse scrolling will be used to zoom in and out on web.
"disableZoomControl": "disable", // stops showing zoom + and zoom - images.
"backgroundColor": "rgba(0,0,0,0)" // Makes the pinch zoom container color to transparent. So that ionic themes can be applied without issues.
}
Теперь вы должны иметь возможность масштабировать изображение и на мобильных платформах.
Если вам это интересно, вы можете реализовать ту же концепцию на изображении или в div и т. д.
Спасибо :)
В моем случае злоупотребление ионными слайдами было совершенно нормальным, когда я использовал только одно изображение, которое я хотел увеличить или масштабировать. Он также поддерживает двойное касание, что делает его использование более плавным.
используя vue и ionic, например:
<template>
...
<ion-slides :options="sliderOptions" zoom>
<ion-slide>
<div class="swiper-zoom-container">
<img :src="`${yourImageUrl}`" />
</div>
</ion-slide>
</ion-slides>
...
</template>
если вы используете параметры API, передайте объект конфигурации
let sliderOptions = {
zoom: {
maxRatio: 2,
},
};
если вы затем создадите его и дважды коснетесь изображения или уменьшите масштаб