2017-02-09 13 views
0

Я хочу добавить некоторую анимацию на мою угловатую веб-страницу, которая использует маршрутизацию. Я ищу эффект fadein/fadeout так же, как когда вы нажимаете Next на этой странице: https://app.enhancv.com/. Таким образом, когда я нажимаю на любой элемент списка в заголовке, другая страница плавает с тем же эффектом. Как я могу это сделать, используя угловую маршрутизацию? Вы можете найти необходимые файлы ниже.Как добавить эффект затухания между двумя страницами с помощью маршрутизации Angularjs?

Index.html

<!DOCTYPE html> 

<!-- define angular app --> 
<html ng-app="myApp"> 

<head> 
    <!-- SCROLLS --> 
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" /> 
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.0/css/font-awesome.css" /> 

    <!-- SPELLS --> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script> 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script> 
    <script src="script.js"></script> 
</head> 

<!-- define angular controller --> 
<body ng-controller="mainController"> 

    <nav class="navbar navbar-default"> 
    <div class="container"> 
     <div class="navbar-header"> 
     <a class="navbar-brand" href="/">Angular Routing Example</a> 
     </div> 

     <ul class="nav navbar-nav navbar-right"> 
     <li><a href="#"><i class="fa fa-home"></i> Home</a></li> 
     <li><a href="#about"><i class="fa fa-shield"></i> About</a></li> 
     <li><a href="#contact"><i class="fa fa-comment"></i> Contact</a> 

</li> 
      </ul> 
     </div> 

    </nav> 

<div id="main"> 

    <!-- angular templating --> 
     <!-- this is where content will be injected --> 
    <div ng-view></div> 

    </div> 

</body> 

</html> 

Страницы являются:

about.html

<div class="jumbotron text-center"> 
     <h1>About Page</h1> 

     <p>{{ message }}</p> 
    `</div> 

contact.html

<div class="jumbotron text-center"> 
    <h1>Contact Page</h1> 

    <p>{{ message }}</p> 
    </div> 

home.html

<div class="jumbotron text-center"> 
    <h1>Contact Page</h1> 

    <p>{{ message }}</p> 
    </div> 

script.js

// create the module and name it myApp 
    var myApp = angular.module('myApp', ['ngRoute']); 

    // configure our routes 
    scotchApp.config(function($routeProvider) { 
     $routeProvider 

      // route for the home page 
      .when('/', { 
       templateUrl : 'pages/home.html', 
       controller : 'mainController' 
      }) 

      // route for the about page 
      .when('/about', { 
       templateUrl : 'pages/about.html', 
       controller : 'aboutController' 
      }) 

      // route for the contact page 
      .when('/contact', { 
       templateUrl : 'pages/contact.html', 
       controller : 'contactController' 
      }); 
    }); 

    // create the controller and inject Angular's $scope 
    myApp.controller('mainController', function($scope) { 
     // create a message to display in our view 
     $scope.message = 'Everyone come and see how good I look!'; 
    }); 

    myApp.controller('aboutController', function($scope) { 
     $scope.message = 'Look! I am an about page.'; 
    }); 

    myApp.controller('contactController', function($scope) { 
     $scope.message = 'Contact us! JK. This is just a demo.'; 
    }); 
+2

Вам понадобится модуль 'ngAnimate'. Я уверен, что если вы выполните быстрый поиск Google для «примеров ngAnimate», вы сможете получить вдохновение из разных источников. –

ответ

0

Я обернуть содержимое в контейнере, который отображается только при загрузке данных:

<div ng-show="yourpage.dataLoaded" class="fade-element"> 
... 
</div> 

CSS

.fade-element{ 
    transition: all linear 0.1s; 
    opacity: 1; 
} 
.fade-element.ng-hide { 
    opacity: 0; 
} 

.fade-element.ng-hide можно использовать в элементе, который исчезает, например, предварительный натяжитель:

<div ng-hide="yourpage.dataLoaded" class="preloader fade-element"></div>