如何使用ng-repeat垂直堆叠的div元素进行过渡?

时间:2018-07-01 07:01:57

标签: javascript angularjs css3 angularjs-ng-repeat ng-animate

我有3个div元素,垂直堆叠。

如果顶部的一个被删除,我希望底部的一个移动到顶部,但要过渡1秒而不是立即。

下面是我的密码笔和密码

https://codepen.io/DhawalSawla/pen/qKgZdd

HTML:

<div ng-app="app">
  <div ng-controller="appCtrl">
    <div class="outer-box">
      <div class="feed" ng-repeat="f in data.feeds">
        {{f}}
      </div>
    </div>

  </div>
</div>

CSS:

.outer-box {
  border: 1px solid red;
  width: 500px;
  height: 300px;
  overflow: hidden;
  transition: all s linear;
  position: relative;
}
.feed {
  border: 1px solid green;
  width: 500px;
  height: 100px;
  transition: all 1s linear;
  position: absolute;
}

.feed:first-of-type {
  animation-name: display;
  animation-duration: 3s;
}

.feed:nth-of-type(2) {
  top: 100px;
}

.feed:nth-of-type(3) {
  top: 200px;
}

@keyframes display {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

JS:

var app = angular.module('app', []);
app.controller('appCtrl', ['$scope','$http', function($scope, $http){
  $scope.data = {
    feeds: []
  };
  $scope.data.feeds = [];
  $scope.data.feeds.push('Feed 1');
  $scope.data.feeds.push('Feed 2');
  $scope.data.feeds.push('Feed 3');

  setInterval(function() {
    if ($scope.data.feeds.length > 0) {
      console.log('splice1');
      $scope.data.feeds.splice(0,1);
      console.log($scope.data.feeds);
      $scope.$apply();
    }
  }, 1000);
}]);

我正在尝试创建一个新闻提要,此功能对此至关重要。

请让我知道我在做什么错。

0 个答案:

没有答案