2017-02-22 22 views
5

Stworzyłem projekt za pomocą Ionic 2 sidemenuIonic 2 animacje nie działa na urządzeniach z systemem iOS

$ ionic start mySideMenu sidemenu --v2 

ja tylko zapisałem kilka kodów żeby sprawdzić, czy to działa w iOS/symulatora.

page1.ts

import { Component, trigger, state, style, transition, animate } from '@angular/core'; 

import { NavController } from 'ionic-angular'; 

@Component({ 
    selector: 'page-page1', 
    templateUrl: 'page1.html', 
    animations: [ 
     trigger('buttonState', [ 
      state('left', style({ transform: 'translateX(100px)', backgroundColor: 'red' })), 
      state('right', style({ transform: 'translateX(0)', backgroundColor: 'blue' })), 
      transition('left <=> right', [ 
       animate('1000ms ease-in-out') 
      ]) 
     ]) 
    ] 
}) 
export class Page1 { 

    state: string = 'left'; 

    constructor(public navCtrl: NavController) { 

    } 

    changeState() { 
     this.state = this.state == 'left' ? 'right': 'left'; 
    } 
} 

page1.html

<ion-header> 
    <ion-navbar> 
    <button ion-button menuToggle> 
     <ion-icon name="menu"></ion-icon> 
    </button> 
    <ion-title>Page One</ion-title> 
    </ion-navbar> 
</ion-header> 

<ion-content padding> 
    <h3>Ionic Menu Starter</h3> 

    <p> 
    If you get lost, the <a href="http://ionicframework.com/docs/v2">docs</a> will show you the way. 
    </p> 

    <button ion-button secondary [@buttonState]="state" (click)="changeState()">Toggle Menu</button> 
</ion-content> 

Teraz, po zakończeniu budowy aplikacji i testowania go w symulatorze/urządzenia, jedyną rzeczą, pracował tu jest zmiana koloru i pozycja. Nawet jeden piksel nie został przeniesiony.

Działa na urządzeniu z systemem Android, a nie na iOS. Chcę używać wyłącznie wbudowanych animacji Angular. Jakieś przemyślenia na temat tego, w jaki sposób mogę sprawić, aby działało na obu platformach? Dzięki enter image description here

Odpowiedz

11

Ponieważ nie jest to kątowa 2 ale jonowego 2 pytanie, będę prowadzić, jak to zrobiłem.

Wystarczy zainstalować web-animacje-js

$ npm install --save web-animations-js 

Ponieważ jest Ionic 2, nie mamy polyfills.ts gdzieś w kodzie. Lepszym miejscem na umieszczenie go jest plik main.ts. Jeśli masz lepszy pomysł, możesz to skomentować.

main.ts

import 'web-animations-js/web-animations.min'; 

Wtedy jesteś dobry, aby przejść. :) enter image description here