css - 链接 ng-repeat 元素转换

标签 css angularjs ng-animate

我有一个简单的名称列表范围:

$scope.friends = [
    {name:'John'},
    {name:'Jessie'},
    {name:'Johanna'},
    {name:'Joy'},
    {name:'Mary'},
    {name:'Peter'},
    {name:'Sebastian'},
    {name:'Erika'},
    {name:'Patrick'},
    {name:'Samantha'}
  ];

我对这些元素执行简单的 ng-repeat,并显示在我的前端。我想尝试实现的是每个元素/名称都像链条一样一个接一个地过渡。

可以在这里找到我看到的效果的壁橱:http://jsfiddle.net/57uGQ/然而,这使用了我想避免的 jQuery 库。

如果有帮助,我正在使用 ng-animate 库?

参见 plunker:http://plnkr.co/edit/aGwEe2jlGBTvjoSsiK9p?p=preview

最佳答案

您可以结合使用 ng-if$timeout.ng-enter-stagger css 类来复制效果在 jsfiddle 示例中。

html:

<div ng-controller="repeatController">
  <ul>
    <li class="animate-repeat" ng-repeat="friend in friends" ng-if="!hidden">
      {{friend.name}},
    </li>
  </ul>
</div>

js:

angular.module('ngRepeat', ['ngAnimate']).controller('repeatController', function($scope, $timeout) {
  $scope.friends = [
      {name:'John'},
      {name:'Jessie'},
      {name:'Johanna'},
      {name:'Joy'},
      {name:'Mary'},
      {name:'Peter'},
      {name:'Sebastian'},
      {name:'Erika'},
      {name:'Patrick'},
      {name:'Samantha'}
    ];
  $scope.hidden = true;
  $timeout(function(){
    $scope.hidden = false;
  }, 10);   
});

CSS:

.animate-repeat.ng-enter {
  transition: 1s linear all;
  opacity: 0;
}
.animate-repeat.ng-enter-stagger {
  transition-delay: 1.2s;
  transition-duration: 0s;
}
.animate-repeat.ng-enter.ng-enter-active {
  opacity: 1;
}

Plunker

关于css - 链接 ng-repeat 元素转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34947869/

相关文章:

css - iPad 上的背景图像宽度不是 100%

html - 造型联系表格 7 单选按钮

angularjs - 将多个 ui-view 动画化为一个的最佳实践

html - CSS滑入滑出动画溢出问题

wordpress - IE7/8 中的边距和填充问题

html - 表格对齐

javascript - AngularJS 指令 : Change $scope not reflected in UI

javascript - 选项卡中的 AngularJS Bootstrap HTML

javascript - 为对象中的一个字段(在 UI 中)创建两个不同的字段(在对象中)

javascript - AngularJS - 使用 TweenMax 进行位置感知 ng-view 导航