Page 342 - AngularJS权威教程
P. 342

322  第 22 章  Angular 动画


                 (1) 本元素被插入父元素中,或者是after元素后面;
                 (2) $animate运行所有在元素上用JavaScript定义的动画;

                 (3) .ng-enter类被添加到元素的classList中;
                 (4) $animate检查CSS样式来寻找过渡/动画的持续时间和延迟属性。

                 (5) .ng-enter-active类被添加到元素的classList中(触发动画);

                 (6) $animate用定义过的持续时间等待完成;
                 (7) 动画结束,$animate从元素移除.ng-enter和.ng-enter-active类;
                 (8) 触发done()回调函数(如果定义了的话)。


             22.10.4  leave()

                 leave()方法运行leave动画。当它结束运行时,会把元素从DOM移除。动画开始之后,它
             会在元素上添加.ng-leave和.ng-leave-active类。
                 leave()方法带两个参数。

                  element(jQuery/jqLite元素)
                 正在建立动画的元素。

                  done(函数)
                 当动画完成时调用的回调函数。

                 angular.module('myApp', ['ngAnimate'])
                     .directive('myDirective', function($animate) {
                         return {
                             template: '<div class="myDirective">' +
                                 '<h2>Hi</h2></div>',
                             link: function(scope, ele, attrs) {
                                 ele.bind('click', function() {
                                     $animate.leave(ele);
                                 });
                             }
                         }
                 });
                 调用leave()动画方法会经历如下步骤:

                 (1) $animate可运行所有在元素上用JavaScript定义的动画;
                 (2) .ng-leave类被添加到元素的classList中;

                 (3) $animate检查CSS样式来寻找过渡/动画的持续时间和延迟属性;
                 (4) .ng-leave-active类被添加到元素的classList中(触发动画);
                 (5) $animate用定义过的持续时间等待完成;

                 (6) 动画结束,$animate从元素移除.ng-leave和.ng-leave-active类;
                 (7) 元素被从DOM移除;
   337   338   339   340   341   342   343   344   345   346   347