我想为特定的状态变化制作不同的动画。我基于此: https://scotch.io/tutorials/animating-angularjs-apps-ngview 它工作正常,但我想要这样的东西:
- 状态从 A 更改为 B - 从左到右滑动视图
- 状态从 B 更改为 C - 从右向左滑动视图
- 状态从 C 更改为 A - 从上到下滑动视图
- 否则 - 从下到上滑动视图
目前我有这样的东西 - 所有视图都从右到左移动。当我在我的应用程序中单击“返回”按钮然后.main-app
添加类但我仅在元素.back
上具有正确的动画(从左到右)并且具有与往常一样的动画(从右到左).ng-leave
.ng-enter
$animateTime: .5s;
.main-app.ng-enter { position: absolute; top: 0; left: 0; animation: slideInRight $animateTime both ease-in; }
.main-app.ng-leave { position: absolute; top: 0; left: 0; animation: slideOutLeft $animateTime both ease-in; }
.main-app.ng-enter.back { position: absolute; top: 0; left: 0; animation: slideInLeft $animateTime both ease-in; }
.main-app.ng-leave.back { position: absolute; top: 0; left: 0; animation: slideOutRight $animateTime both ease-in; }
我试过这样的事情:
$rootScope.$on('$stateChangeSuccess', function(event, to, toParams, from, fromParams) {
if(from.name == 'A' && to.name == 'B') {
$('.main-app').addClass('animation-from-top-to-bottom');
}
});
但是使用这个脚本仍然只有.ng-leave
元素像我想要的那样工作,.ng-enter
有默认动画。