zacząłem się bawić biblioteką "angular-animate.js". Mam jednak problem z animacją tła dla <body> (które zmienia się w zależności od widoku). Po któtce wyglada to tak:
// app/index.html <body ng-class="getBg()"> ... </body>
Jak widać zostanie załadowana klasa CSS, którą zwraca powyższa funkcja getBg(), zdefiniowana w głównym kontrolerze:
// app/js/controllers.js .controller('MainController', ['$scope', '$location', '$route', function($scope, $location, $route) { $scope.getBg = function() { }; ...
To działa dobrze, tzn. tła się zmieniają. CSS wygląda tak:
.bg-intro { background: #4d4638 url(../img/tlo-home.jpg) no-repeat top center; } .bg-home { background: #4d4638 url(../img/tlo-119752711-karbonizowany-dark.jpg) no-repeat top center ; } ...
Chciałbym aby tła zmieniały się płynnie i ładnie, dlatego postanowiłem użyć oficjalnej biblioteki 'angular-animate.js' oraz animacji w CSS lub JS (Greensock) - w obu przypadkach nieskutecznie (nic się nie dzieje). Przeczytałem mnóstwo tutoriali i całą dokumentację (wraz z tutorialem Phonecat i Guidem), lecz nadal nie wiem co zrobić aby to działało...
1. CSS - według dokumentacji wystarczy ustawić klasy ng-enter oraz ng-leave, a więc:
// app/css/animations.css .bg-intro.ng-enter, .bg-intro.ng-leave { background: #ffffff; } .bg-intro.ng-enter { animation: 0.5s fade-in; } .bg-intro.ng-leave { animation: 0.5s fade-out; } @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes fade-out { from { opacity: 1; } to { opacity: 0; } }
2. JS (Greensock) - tutaj próbowałem w ten sposób:
// app/js/animations.js .animation('.bg-intro', function() { return { enter: function(element, done) { TweenMax.set(element, { alpha:1, backgroundColor:"#ffffff"}); TweenMax.from(element, .5, {alpha:0, top:100, ease:Power2.easeInOut, onComplete:done}); return function(cancel) { if(cancel) { element.stop(); } }; }, leave: function(element, done) { TweenMax.set(element, { alpha:1, backgroundColor:"#ffffff"}); TweenMax.to(element, .5, {alpha:0, top:-100, ease:Power2.easeInOut, onComplete:done}); return function(cancel) { if(cancel) { element.stop(); } }; } }})
Niestety żadna z powyższych metod nie dziła i tło się zmienia, ale bez animacjii

Pozdr.