Ionic 2 动画在 iOS 设备上不起作用
Posted
技术标签:
【中文标题】Ionic 2 动画在 iOS 设备上不起作用【英文标题】:Ionic 2 animations not working on iOS device 【发布时间】:2017-07-12 14:39:20 【问题描述】:我使用 Ionic 2 侧边菜单创建了一个项目
$ ionic start mySideMenu sidemenu --v2
我只写了一些代码来测试这是否适用于 ios 设备/模拟器。
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>
现在,在构建应用程序并在模拟器/设备中对其进行测试之后,这里唯一起作用的是颜色和位置的变化。甚至没有移动一个像素。
它适用于安卓设备,不适用于 iOS。我只想使用 Angular 的内置动画。关于如何让它在两个平台上工作的任何想法?谢谢
【问题讨论】:
【参考方案1】:由于这不是一个 Angular 2 而是一个 Ionic 2 问题,我将引导你我是如何做到的。
只需安装 web-animations-js
$ npm install --save web-animations-js
由于这是 Ionic 2,我们在代码中的某处没有 polyfills.ts
。将它放在 main.ts
文件中的更好位置。如果您有更好的想法,请随时发表评论。
main.ts
import 'web-animations-js/web-animations.min';
那你就可以走了。 :)
【讨论】:
【参考方案2】:正如您在他们的documentation 中看到的,iOS 不支持web animations API。
您应该将animations polyfill 添加到您的项目中
【讨论】:
以上是关于Ionic 2 动画在 iOS 设备上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
transform:翻译动画在 iOS 15.1 设备上不起作用
Ionic - OneSignal 在 iOS 13.x 上不起作用
Ionic 3:css的一部分在Android平台上不起作用
Ionic 5 电容器:使用 ONESIGNAL 的推送通知在 iOS 上不起作用