Here is an implementation for doing this in angular with ng-animate (p.s. i love the code viewer on this site, what is it?)
.animation('.animation-slide-toggle', function() {
return {
beforeAddClass : function(element, className, done) {
if(className == 'ng-hide') {
TweenMax.set(element, {overflow:"hidden"})
TweenMax.to(element, 1, {height:0, onComplete:done})
}
else {
done();
}
},
removeClass : function(element, className, done) {
if(className == 'ng-hide') {
TweenMax.set(element, {'display':'block'})
naturalHeight = element[0].offsetHeight;
TweenMax.set(element, {clearProps:"display"})
TweenMax.set(element, {height:0, overflow:"hidden"})
TweenMax.to(element, 1, {height:naturalHeight, onComplete:done})
}
else {
done();
}
}
};
})