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?

Author: laser, 2012-10-26

5 answers

Angularjs 1.1.4 wprowadził dyrektywę ng-animate, aby pomóc w animowaniu różnych elementów, w szczególności ng-view.

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 .

 70
Author: Mortimer,
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>
 16
Author: madhead,
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 fadeout

Szablon:

<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:)

 5
Author: F Lekschas,
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

 1
Author: ice.cube,
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/

 -1
Author: Rohit Vinay,
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