Page 337 - AngularJS权威教程
P. 337

22.9  内置指令的动画    317


                  1. CSS3过渡                                                                          19
                  要让ngHide中的元素动起来,我们需要确认添加了展现元素初始状态的CSS样式类,以及为
              enter和edit状态定义最终状态的类:                                                                  20

                  .animateMe.ng-hide-add,
                  .animateMe.ng-hide-remove {
                      transition: 2s linear all;                                                     21
                      -webkit-transition: 2s linear all;
                      display: block !important;
                  }                                                                                  22
                  注意CSS块中的最后一行:它告诉CSS渲染这个类,并且,对于display属性而言,没有其
              他备选值。没有这行的话,这个元素就不会显示了。                                                                23

                  至此,可以简单地在动画中定义初始和最终阶段的CSS属性。
                                                                                                     24
                  .animateMe.ng-hide-add {
                      opacity: 1;
                  }
                  .animateMe.ng-hide-add.ng-hide-add-active                                          25
                  {
                      opacity: 0;
                  }                                                                                  26
                  .animateMe.ng-hide-remove {
                      opacity: 0;
                  }
                  .animateMe.ng-hide-remove.ng-hide-remove-active {                                  27
                      opacity: 1;
                  }
                                                                                                     28
                  2. CSS3动画
                  首先,添加为动画定义的@keyframe。
                                                                                                     29
                  @keyframes animateMe-add {
                      from {opacity: 1;}
                      to {opacity: 0;}                                                               30
                  }
                  @-webkit-keyframes animateMe-add {
                      from {opacity: 1;}
                      to {opacity: 0;}                                                               31
                  }
                  @keyframes animateMe-remove {
                      from {opacity:0;}                                                              32
                      to {opacity:1;}
                  }
                  @-webkit-keyframes animateMe-remove {                                              33
                      from {opacity:0;}
                      to {opacity:1;}
                  }
                                                                                                     34
                  为了应用动画,需要做的就是在我们的类中添加动画CSS样式:

                  .animateMe.ng-hide-add {                                                           35
                      -webkit-animation: 2s animateMe-add;
                      animation: 2s animateMe-add;
                  }
                  .animateMe.ng-hide-remove {                                                        36
   332   333   334   335   336   337   338   339   340   341   342