【发布时间】:2014-02-07 19:32:44
【问题描述】:
我设置了一个 AngularJS 动画,用于使用最新版本的 Angular (1.2.9) 在 ng-switch 指令的面板中滑动。如果我尝试使用“transform: translate(0,0);”为位置设置动画,我会注意到奇怪的行为而不仅仅是“左”属性。使用翻译时,动画有时可以正常工作,有时不能正常工作(我会说大约是 50/50)。但是,如果我为 left 属性设置动画,它 100% 的时间都可以正常工作。
我正在使用的动画的 CSS 是
.slide-animation.ng-enter,
.slide-animation.ng-leave {
position: absolute;
-webkit-transition: all ease-in-out 1s;
-moz-transition: all ease-in-out 1s;
-o-transition: all ease-in-out 1s;
transition: all ease-in-out 1s;
}
.slide-animation.ng-enter {
-webkit-transform: translate(-125%, 0);
-ms-transform: translate(-125%, 0);
transform: translate(-125%, 0);
}
.slide-animation.ng-enter.ng-enter-active,
.slide-animation.ng-leave {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
transform: translate(0, 0);
}
.slide-animation.ng-leave.ng-leave-active {
-webkit-transform: translate(125%, 0);
-ms-transform: translate(125%, 0);
transform: translate(125%, 0);
}
这是一个演示我遇到的问题的小提琴:http://jsfiddle.net/HXACU/5/
我想使用 translate,因为它提供的性能比在移动设备上为 left 属性设置动画要好得多。我有什么问题吗,这是 Angular 中的一个错误,还是我应该放弃并只使用“left”进行动画处理?
【问题讨论】:
标签: javascript css angularjs animation css-transforms