Не могу заставить ngAnimate работать в новом проекте angular-seed

Проблема: Анимация не работает в проекте угловых семян. Что я сделал:

  1. Я взял семя угловой из GitHub.
  2. В seed-проекте есть два представления, view1.html и view2.html, которые связаны между собой посредством соответствующих маршрутов с соответствующими контроллерами.
  3. Я заменяю view1 моей самой простой CSS-передачей, анимацией. (который отлично работает в другом проекте)
  4. В скрипте View1 я вставляю 'ngAnimate' в модуль следующим образом: var animation3App = angular.module('animation3', ['ngAnimate']);
  5. Я добавляю "angular-animate": "1.2.x" в bower.json и запускаю установку bower. Я проверяю, что angular-animate добавлен / установлен в каталог bower_components.
  6. В index.html я добавляю эту строку между angular-route и app.js следующим образом: ...src="bower_components/angular-animate/angular-animate.js"...

Анимация: два поверх друг друга, нажатие на одно должно установить его непрозрачность равным 0, остальные (то есть ниже 1), таким образом, изменяя изображение с одного на другое, требуя своего времени, 1 секунды, чтобы изменить непрозрачность давая эффект "слияния".

Когда при переходе к index.html маршрутизация дает мне view1.html, именно так маршрутизируется angular-seed, я этого не трогал. Анимация, которая отлично работает, если не в проекте с угловым начертанием, не работает. Изображения меняются местами, но без эффекта анимации.

Я не получаю никаких предупреждений или ошибок в инструменте браузера F12. Есть ли способ отладить это с Батаранг?

Весь view1.html со скриптом внутри него для простоты:

<!DOCTYPE html>
<html ng-app="animation3">
<head lang="en">
    <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
</head>
<body ng-controller="animation3Ctrl">

<style>
    #image-container {
        position: relative;
        width: 200px;
        height: 200px;
    }
    .image-back{
        position: absolute;
        top: 25px;
        left: 25px;
        width: 150px;
        height: 150px;
        border: 1px lightcoral solid;
    }
    .image-front{
        position: absolute;
        top: 0px;
        left: 0px;
        width: 200px;
        height: auto; /*height: 200px;*/
        border: 1px lightcoral solid;
    }

    .animate-show {
        opacity:1;
    }
    .animate-show.ng-hide-add.ng-hide-add-active,
    .animate-show.ng-hide-remove.ng-hide-remove-active {
        -webkit-transition:all 1.7s;
        transition:all 1.7s;
    }
    .animate-show.ng-hide {
        opacity:0;
    }
</style>

<pre>
    This is view1.
    Click on Image to see animation.
    This HTML works perfectly well on it's own, but NOT inside this angular-seed project.
</pre>

<div id="image-container">
    <img class="image-front animate-show"
         ng-src="./img/{{photo.imgFront}}"
         ng-click="flipPhoto()"
         ng-show="frontShown">
    <img class="image-back animate-show"
         ng-src="./img/{{photo.imgBack}}"
         ng-click="flipPhoto()"
         ng-hide="frontShown">
</div>

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.0/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.0/angular-animate.js"></script>
<script>
    var animation3App = angular.module('animation3', ['ngAnimate']);

    animation3App.controller('animation3Ctrl', ['$scope',
        function ($scope) {
            $scope.photo = {
                imgBack: 'proXoftLogo.png',
                imgFront: 'donaldBlack.jpg'
            }

            $scope.flipPhoto = function flipPhoto(){
                $scope.frontShown = !$scope.frontShown;
            }
        }]);
</script>

</body>
</html>

1 ответ

Решение

Я решил это! Произошла ошибка в CSS для анимации. Все 6 шагов, которые я описал в своем вопросе, были правильными. Моя проблема не имела никакого отношения к angular-seed.

Решение: я изменил CSS на следующее: (какая именно часть является критической, я еще не знаю, так как я изучаю анимацию под углом)

.animate-show.ng-hide-add,
.animate-show.ng-hide-remove {
    -webkit-transition:all 1.7s;
    transition:all 1.7s;
}
.animate-show.ng-hide-add.ng-hide-add-active,
.animate-show.ng-hide-remove{
    opacity:0;
}
.animate-show.ng-hide-add,
.animate-show.ng-hide-remove.ng-hide-remove-active {
    opacity:1;
}
Другие вопросы по тегам