AngularJS-Animate ng-view transitions
Mam 2 strony html, welcome.html
i login.html
obie są "wstawiane" do index.html
w zależności od adresu URL poprzez ngview
atrybut i dostawca routera , jako część mojej aplikacji AngularJS.
Przykład tego można znaleźć na stronie głównej AngularJSPod podłącz Backend.
Moje pytanie : czy istnieje sposób na ożywianie przejścia między welcome.html
i login.html
?
5 answers
Możesz również obejrzeć film o tej nowej funkcji
UPDATE od angularjs 1.2 sposób działania animacji zmienił się drastycznie, większość z nich jest teraz kontrolowana za pomocą CSS, bez konieczności konfigurowania wywołań zwrotnych javascript itp.. Możesz sprawdzić zaktualizowany samouczek na rok Moo. @dfsq wskazał w komentarzach a ładny zestaw przykładów .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-27 16:39:08
Sprawdź ten kod:
Javascript :
app.config( ["$routeProvider"], function($routeProvider){
$routeProvider.when("/part1", {"templateUrl" : "part1"});
$routeProvider.when("/part2", {"templateUrl" : "part2"});
$routeProvider.otherwise({"redirectTo":"/part1"});
}]
);
function HomeFragmentController($scope) {
$scope.$on("$routeChangeSuccess", function (scope, next, current) {
$scope.transitionState = "active"
});
}
CSS:
.fragmentWrapper {
overflow: hidden;
}
.fragment {
position: relative;
-moz-transition-property: left;
-o-transition-property: left;
-webkit-transition-property: left;
transition-property: left;
-moz-transition-duration: 0.1s;
-o-transition-duration: 0.1s;
-webkit-transition-duration: 0.1s;
transition-duration: 0.1s
}
.fragment:not(.active) {
left: 540px;
}
.fragment.active {
left: 0px;
}
Strona główna HTML :
<div class="fragmentWrapper" data-ng-view data-ng-controller="HomeFragmentController">
</div>
przykład częściowy HTML :
<div id="part1" class="fragment {{transitionState}}">
</div>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-23 18:27:38
Nie jestem pewien, jak zrobić to bezpośrednio z AngularJS, ale możesz ustawić wyświetlacz na brak zarówno dla powitania, jak i logowania i animować krycie za pomocą dyrektywy po załadowaniu.
Zrobiłbym to w jakiś sposób. 2 dyrektywy dotyczące zanikania treści i zanikania jej po kliknięciu linku. Dyrektywa dla fadeoutów może po prostu animować element o unikalnym identyfikatorze lub wywołać usługę, która nadaje fadeoutSzablon:
<div class="tmplWrapper" onLoadFadeIn>
<a href="somewhere/else" fadeOut>
</div>
Dyrektywy:
angular
.directive('onLoadFadeIn', ['Fading', function('Fading') {
return function(scope, element, attrs) {
$(element).animate(...);
scope.$on('fading', function() {
$(element).animate(...);
});
}
}])
.directive('fadeOut', function() {
return function(scope, element, attrs) {
element.bind('fadeOut', function(e) {
Fading.fadeOut(e.target);
});
}
});
Usługa:
angular.factory('Fading', function() {
var news;
news.setActiveUnit = function() {
$rootScope.$broadcast('fadeOut');
};
return news;
})
Po prostu szybko ułożyłem ten kod, więc mogą być jakieś błędy:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-26 13:21:39
Spróbuj sprawdzić jego stanowisko. Pokazuje, jak zaimplementować przejścia między stronami za pomocą AngularJS 's ngRoute i ngAnimate: Jak tworzyć przejścia stron w stylu iPhone' a za pomocą AngularJS & CSS
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-30 12:10:06
1.Install angular-animate
2.Dodaj efekt animacji do klasy ng-enter
dla animacji wchodzącej na stronę i klasy ng-leave
dla animacji wychodzącej na stronę
Odsyłacz: ta strona ma bezpłatny zasób na temat przejścia kątowego widoku https://e21code.herokuapp.com/angularjs-page-transition/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-13 20:24:46