2015-02-12 4 views
7

Я добавил видовое окно со свойствами, позволяющими масштабирование/масштабирование. И я добавил их в машинный код:Масштабирование в конкретном div в Кордове/Ионном

WebSettings settings = super.appView.getSettings(); 
settings.setBuiltInZoomControls(true); 
settings.setDisplayZoomControls(true); 
settings.setSupportZoom(true); 

Я могу увеличить, но вместе с моей точки зрения, ion-header-bar и ion-nav-bar получает в увеличенном виде. Я попытался дать заголовок css, чтобы он не исправлялся:

position: fixed; 
top: 0px; 
left: 0px; 

но все же он бы увеличился.

index.html имеет ion-header-bar, в котором содержится изображение. Шаблоны идут в

<ion-nav-view class="has-header"></ion-nav-view> 

Шаблон, в котором я требуют масштабирования в определенной DIV оказывает «ион-view` и выглядит следующим образом:

<ion-view> 
    <ion-nav-bar class="bar-stable"> 
     <ion-nav-buttons side="right"> 
      icon1 
     </ion-nav-buttons> 
     <ion-nav-buttons side="left"> 
      icon2 
     </ion-nav-buttons> 
    </ion-nav-bar> 
    <div> 
     Multiple divs in here, which are containers for html and css data we receive via AJAX requests. And this is here I need zooming in. 
    </div> 
</ion-view> 

PS: Будет ли это важно, если я добавить полный HTML-код (с метафоном, без заголовка, но с телом и div) внутри ion-view?

ответ

8

Я хотел получить аналогичную функциональность и смог заставить его работать, используя ion-scroll.

<ion-scroll zooming="true" direction="xy" style="width: 100%; "> 
    <div></div> 
</ion-scroll> 
+0

Мои дивы модифицируются с помощью DOM после AJAX запросов. Я попытался добавить эти div в «ионный свиток», но тогда полученные данные не будут загружаться, т. Е. Div внутри ионного прокрутки останется пустым. Я попытался добавить код прокрутки ионов в jQuery, где я изменяю HTML-код div следующим образом: '$ (" # container "). Html ('<Ион-прокрутка масштабирования =" true "direction =" xy "style = "width: 100%;">

' + data + '
'); 'и doc загружается, но тогда я не могу прокручивать. Чтобы быть уверенным, что я добавил div с некоторым текстом в HTML, в ионном прокрутке, и мне удалось увеличить этот текст. – Keval

+1

В 1.2+, вы должны добавить это также: '.config (функция ($ ionicConfigProvider) {$ ionicConfigProvider.scrolling.jsScrolling (истинный); })' Via https: //forum.ionicframework. com/t/ionic-latest-version-1-7-14-pinch-zoom-is-not-working/42832 – jczaplew

1

Другим решением может быть использование hammerjs для мультитач жесты и карта прищипывают и щепотку, чтобы увеличить содержание с помощью CSS.

Что-то вроде этого:

var hammerTime = new Hammer.Manager($('div.youWantToScale')[0], {touchAction: "pan-x pan-y"}); 
var pinch = new Hammer.Pinch(); 
var lastZoom; 
hammerTime.add(pinch); 
hammerTime.on("pinchout pinchin", function(e) { 
    var currentZoom = Number($('div.youWantToScale').css("zoom")); 
    if (lastZoom) { 
     var newZoom = currentZoom + (e.scale - lastZoom); 

     //bounds checking for your zoom, min=1 and max=3 here 
     newZoom = newZoom < 1 ? 1 : (newZoom > 3 ? 3 : newZoom); 
     $('div.youWantToScale').css("zoom", newZoom); 
    } 
    lastZoom = e.scale; 
}); 

hammerTime.on("pinchstart", function (e) { 
    //Seems clunky, but reset the lastZoom on a new pinch 
    lastZoom = undefined; 
}); 
+0

Я могу увеличить размер div, которого хочу, но теперь я не могу прокрутить вниз. И теперь приложение сталкивается с большим запаздыванием на этой странице из-за плагина. – Keval

+0

Хмм, возможно, попробуйте добавить 'var pan = new Hammer.Pan()' и отрегулировать 'hammerTime.add' на' hammerTime.add (щепотку, панорамирование) 'Кажется, что молот может перекрыть обычные события касания ... Хмм , также добавляет css: 'overflow: scroll; -webkit-overflow-scrolling: touch; 'help вообще? – laughingpine

+0

Спасибо за ответ, но никаких изменений вообще нет. Все еще невозможно прокручивать. И _heavy lag_ все тот же – Keval

Смежные вопросы