Ich habe ein Problem mit der Animation nach der Aktualisierung von Angular 1.2 -> 1.4.Angular Animate 1.4 zu schnell
Ich animiere Seitenübergänge, indem ich die css-Klasse im Element des Ansichtscontainers ändere. Ich benutze UI-Router und haben ng-Klasse-Direktive für das Element. Der Benutzer navigiert mit den Pfeiltasten (Ereignis-Listener in app.run()). Dadurch wird die Klasse als String-Variable 'navDirection' (links/rechts) auf $ rootScope festgelegt.
Nach der Aktualisierung scheint $ rootScope.navDirection NACH der Animation gesetzt zu sein. Die Animation ist also falsch, wenn der Benutzer die Richtung ändert.
Alle Vorschläge und/oder Kommentare sind willkommen!
index.html
<body ng-cloak ng-keydown="handleEvt($event)">
<div class="page-wrapper page-wrapper--constrain" ng-class="{'page-wrapper--decorate' : decoratePageContent === true}">
<div class="page-content group position-context">
<div ui-view class="slide" ng-class="{'at-view-slide-in-left at-view-slide-out-right': navDirection == 'right', 'at-view-slide-in-right at-view-slide-out-left': navDirection == 'left'}"></div>
</div>
</div>
</body>
app.js
var app = angular.module('my-app', [
'ui.router',
'ngAnimate'
]);
// ...
app.run(function ($rootScope, navigationService) {
$rootScope.handleEvt = function(e) {
if ($rootScope.navVisible) {
switch (e.which) {
// right
case 37:
$rootScope.navDirection = "right";
navigationService.navigate(navigationService.getCurrentPageIndex() - 1);
break;
// left
case 39:
$rootScope.navDirection = "left";
navigationService.navigate(navigationService.getCurrentPageIndex() + 1);
break;
}
}
};
// ...
Können Sie einen funktionierenden Codepen von dem, was Sie gerade arbeiten, einrichten? –