Javascript 在angular ui router中,是否可以为特定视图设置动画?
要在angular.js ui router中设置状态更改的动画,有用于Javascript 在angular ui router中,是否可以为特定视图设置动画?,javascript,angularjs,css,animation,angular-ui-router,Javascript,Angularjs,Css,Animation,Angular Ui Router,要在angular.js ui router中设置状态更改的动画,有用于enter和onleave的类。这意味着当我制作动画时,每个视图的效果都是一样的 这个例子不是我的,但请注意,当我返回到前一个状态时,动画是相同的,它会向左移动 有没有办法在每个状态或其他事件上添加动画?由于动画是通过CSS应用的,因此您唯一的选择似乎是根据新状态和以前的状态确定应应用哪些CSS。将类应用于视图更改事件的传出视图很容易,但对于传入视图则困难得多 这应该是可行的,但涉及黑客angular-ui-router.j
enter
和onleave
的类。这意味着当我制作动画时,每个视图的效果都是一样的
这个例子不是我的,但请注意,当我返回到前一个状态时,动画是相同的,它会向左移动
有没有办法在每个状态或其他事件上添加动画?由于动画是通过CSS应用的,因此您唯一的选择似乎是根据新状态和以前的状态确定应应用哪些CSS。将类应用于视图更改事件的传出视图很容易,但对于传入视图则困难得多 这应该是可行的,但涉及黑客angular-ui-router.js。我认为将此功能写入某种扩展脚本应该相对简单
- 为将要执行的不同动画创建不同的CSS类。例如,如下图所示向左和向右滑动
- 在forms controller中添加一个范围变量,该变量指示应发生的动画,例如
$scope.animationType
- 在forms controller中,向视图更改事件添加一个侦听器,该事件将根据当前和将来的状态更改
的值。该值应将CSS类与要执行的动画相匹配$scope.animationType
- 在angular-ui-router.js中找到
函数,并添加参数和前两行:cleanupLastView
cleanupLastView
,以便包含克隆的元素:cleanupLastView(clone)
不包括带有@关键帧的缩写CSS
.form-view-slide-left.ng-enter {
animation:slideInRight 0.5s both ease;
}
.form-view-slide-left.ng-leave {
animation:slideOutLeft 0.5s both ease;
}
.form-view-slide-right.ng-enter {
animation:slideInLeft 0.5s both ease;
}
.form-view-slide-right.ng-leave {
animation:slideOutRight 0.5s both ease;
}
.form-view-slide-left.ng-enter {
animation:slideInRight 0.5s both ease;
}
.form-view-slide-left.ng-leave {
animation:slideOutLeft 0.5s both ease;
}
.form-view-slide-right.ng-enter {
animation:slideInLeft 0.5s both ease;
}
.form-view-slide-right.ng-leave {
animation:slideOutRight 0.5s both ease;
}