在尝试创建淡入淡出图像的幻灯片时,我遇到了这个问题。我发现,当一次制作一个动画时,它们是流畅且无缝的。但是,在制作多个动画时,它们会变得不稳定且不稳定。这是我用于淡入一张图像的代码,同时淡出重叠的图像(所有这些都发生在指令中):
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 操作,并且动画完美无缺。我只是把它移到一个指令中,因为那是有角度的做事方式。那么为什么它会提升我的动画呢?