Angularjs ng-animate移动示例?

时间:2013-05-06 11:22:51

标签: animation angularjs

我似乎无法在上班途中获得有角度的动画,而且似乎也没有任何野外的例子。以演示小提琴为例: http://jsfiddle.net/yfajy/

在过滤列表时,向css添加移动指令(如下所示)不会产生任何动画效果:

.example-repeat-move-setup {  opacity:1;
  color:red }
.example-repeat-move-setup.example-repeat-move-start {   opacity:1;
  color:black;}

有人可以发布一个有效的例子吗?

3 个答案:

答案 0 :(得分:14)

我让它处理了一些乱七八糟的使用下一个兄弟css选择器+ (fiddle)。显然,move动画应用于第一个移动元素和倒数第二个元素之间的所有元素,但不应用于最后一个更改元素。

你可以在this fiddle中看到,我将两个人交换4个空格,移动动画应用于元素0,1,2和3但不是4,即使我只交换了元素0和4。 next sibling selector会覆盖为元素1,2和3设置的值,并且是唯一应用于4的样式。

this fiddle中你可以真正看到它,有一个按钮用第3个元素替换第6个元素,并将新人放在第1个和第3个元素中。第1和第3个获得输入动画,而第4个和第5个获得移动动画,第6个获得任何内容,即使第6个位置是唯一一个移动的人。

答案 1 :(得分:11)

有一篇非常好的文章,教程在:

http://www.yearofmoo.com/2013/04/animation-in-angularjs.html

答案 2 :(得分:8)

根据documentation

  • 输入 - 将新项目添加到列表或项目时 过滤后显示
  • 离开 - 从列表中删除项目时 或者当一个项目被过滤掉时
  • 移动 - 当相邻的项目是 过滤掉导致重新排序或项目内容 重新排序

因此,过滤和退出项目只会触发输入和离开动画,而不是移动动画。

要触发移动动画,您需要重新排序项目,例如jsfiddle example

$scope.shuffle = function() {
    $scope.friends = _($scope.friends).shuffle();
}

您可能还想查看有关ngAnimate的更深入的解释:

http://gsklee.im/post/50254705713/nganimate-your-angularjs-apps-with-css3-and-jquery