【发布时间】:2014-08-12 05:55:13
【问题描述】:
在尝试创建淡入淡出图像的幻灯片时,我遇到了这个问题。我发现,当一次制作一个动画时,它们是流畅且无缝的。但是,在制作多个动画时,它们会变得不稳定且不稳定。这是我用于淡入一个图像的代码,同时淡出重叠的图像(所有这些都发生在一个指令中):
var fadeToNextImg = function() {
var nextImg = imageHandler.getNextImage();
$animate.addClass(curImage, 'ng-hide');
$animate.removeClass(nextImg, 'ng-hide');
curImage = nextImg;
};
这可行,但是动画会产生不稳定的结果。图像不会平滑地淡入和淡出,它们只是出现,或者有时其中一个图像会淡出。 但是,如果我嵌套动画以便一次只发生一个,那么两个动画都会完美执行,一个接一个,就像这样:
var fadeToNextImg = function() {
var nextImg = imageHandler.getNextImage();
$animate.addClass(curImage, 'ng-hide', function() {
$animate.removeClass(nextImg, 'ng-hide');
curImage = nextImg;
});
};
太好了.. 只是不是我想要的效果。我希望一个图像淡出,而另一张图像无缝淡入它上面!难道我做错了什么?或者这是 Angular Animate 库中的错误/性能问题?
另外需要注意的是,我还尝试在指令之外使用 JQuery DOM 操作,并且动画完美无缺。我只是把它移到一个指令中,因为那是有角度的做事方式。那么为什么它会提升我的动画效果呢?
【问题讨论】:
-
最好使用 jQuery 制作动画。已知 angular-animate 存在性能问题。也在这里阅读...github.com/angular/angular.js/issues/4011
标签: angularjs angularjs-directive angularjs-animation