gpt4 book ai didi

angularjs - Angular Animate 1.4 太快了

转载 作者:行者123 更新时间:2023-12-03 17:43:24 25 4
gpt4 key购买 nike

从 Angular 1.2 -> 1.4 更新后,我遇到了动画问题。

我通过更改 View 容器元素上的 css 类来为页面过渡设置动画。
我使用 ui-router 并在元素上有 ng-class 指令。
用户使用箭头键导航(app.run() 中的事件监听器)。这会将类设置为 $rootScope 上的字符串变量“navDirection”(左/右)。

更新后似乎 $rootScope.navDirection 是在动画之后设置的。所以当用户改变方向时动画是错误的。

任何建议和/或意见表示赞赏!

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;
}
}
};

// ...

最佳答案

ngAnimate 在 1.4 版本内部进行了重构。它不会同时运行 Javascript 和 CSS 动画。现在可以通过将 $animateCSS 注入(inject) javascript 定义的动画来实现相同的效果。
触发移动动画将始终结束任何基于父类的未决或事件动画(使用 ngClass)。

关于angularjs - Angular Animate 1.4 太快了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30523986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com