Enter/Leave animation with ng-repeat
by klode
HTML
<script src="https://code.angularjs.org/1.3.2/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.2/angular-animate.min.js"></script>
<div ng-app="myApp">
<div ng-controller="Ctrl">
<button ng-click="addOne()">Add One</button>
<button ng-click="deleteOne()">Delete Last</button>
<li class="target" ng-repeat="n in array">{{n}} Bring me in!</li>
</div>
</div>
CSS
.target.ng-enter,
.target.ng-leave
{
transition:all linear 0.5s;
}
.target.ng-enter,
.target.ng-leave.ng-leave-active
{
opacity:0;
transform: translateX(10%);
}
.target.ng-leave,
.target.ng-enter.ng-enter-active {
opacity: 1;
transform: translateX(0);
}
JavaScript
angular.module('myApp', ['ngAnimate'])
.controller('Ctrl', function($scope) {
var index = 0;
$scope.array = [];
$scope.addOne = function() {
index += 1;
$scope.array.push(index);
}
$scope.deleteOne = function() {
index -= 1;
$scope.array.pop();
}
});