【发布时间】:2016-11-03 07:40:34
【问题描述】:
目前正在尝试使用 ng2 内置的 animations 组件在我的 Angular2 站点中实现一些动画。到目前为止,我一直在研究文档中提供的 Angular 2 Developer Guide - Animations。尽管我遇到了一些问题,但我希望 SO 社区能够提供帮助。我似乎遇到的第一个问题/问题是动画(据我所知)没有运行页面加载。如果我切换到一个视图然后返回到带有动画的视图,它似乎运行得非常好。这是我目前用于相关动画的代码(如果需要,我可以提供整个组件):
animations: [
trigger('kissState', [
state('in', style({opacity: 1})),
transition('void => *', [
style({opacity: 0}),
animate('250ms ease-in-out')
]),
transition('* => void', [
animate('250ms ease-in-out', style({opacity: 0}))
])
])
]
我的印象是,void => * 会将我的 DOM 元素设置为 opacity:0,并且一旦将 in 输入到视图中,它将是 opacity:1。我似乎遇到的另一个问题是我的导航似乎无法在移动设备上运行。我实际上还没有将它们移到我的服务器上,但是在本地开发并通过节点localtunnel 在我的移动设备上查看似乎没有任何动画。这可能是因为localtunnel 的运行方式很奇怪,所以在我能够在实际服务器上真正对其进行测试之前,我并不太担心这一点。这是另一个动画,特别是当我注意到它在我的移动设备上不起作用时:
animations: [
trigger('offScreenMenu', [
state('inactive', style({
opacity: 0,
zIndex: -10
})),
state('active', style({
backgroundColor: 'rgba(255, 255, 255, 0.8)',
zIndex: 10
})),
transition('inactive => active', animate('250ms ease-in')),
transition('active => inactive', animate('250ms ease-out'))
])
]
我遇到的最后一个问题是 Angular2 团队的一个已知问题是路由器视图更改的动画。目前有一个 SO question 解决了这个问题,还有一张关于 Angular2 回购的票(在 SO question 中 Günter Zöchbauer 的评论中提到)。有了这个,我很好奇是否有任何现有的解决方法?通过一些简短的研究,看起来可能曾经有一个ng-enter 和ng-leave 可以在他们的css中使用,但据我所知,这些已经被淘汰了。仍然需要做更多的研究,所以我可能错了。
提前感谢您的帮助!
更新(7.7.16):好吧,所以我决定回到它,在弄乱了页面加载动画的时间之后,它似乎确实在工作。虽然我必须做一个大致的1000ms 动画才能引起注意。这让我想到了我认为动画在 DOM 完全加载之前开始执行的问题(或更多思考)。这似乎有点奇怪。
仍在研究移动动画的情况。看起来我现在要在 Github repo 上提交一个问题,因为我已经弄乱了它,似乎无法让它工作。似乎也没有提到移动动画不适用于 NG2。
更新(7.13.16):看起来 Angular2 团队已经进行了一些修复,计划与 RC5 一起发布,这些修复应该可以解决我的上述问题。将回答我自己的问题并结束。
【问题讨论】:
标签: css animation angular angular2-routing