Chapter 3: Creating addClass animations with ngShow
by billy roberts
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>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<div ng-app="myApp">
<div ng-controller="Ctrl">
<button ng-click="displayToggle=!displayToggle">
Toggle Visibility
</button>
<div class="animate-container" ng-show="displayToggle">
Fade me out!
</div>
</div>
</div>
JavaScript
// ...and java script
angular.module('myApp', ['ngAnimate'])
.controller('Ctrl', function($scope) {
$scope.displayToggle = true;
})
.animation('.animate-container', function() {
return {
addClass: function(element, className, done) {
if (className==='ng-hide') {
$(element)
.removeClass('ng-hide')
.css('opacity', 1)
.animate(
{'opacity': 0},
1000,
function() {
$(element)
.addClass('ng-hide')
.css('opacity', 1);
done();
}
);
} else {
done();
}
}
};
});