Page 321 - AngularJS权威教程
P. 321

22.5 交错 CSS 过渡/动画    301


                                                                                                     19
                          使用关键字from等同于把百分比设置为0%,使用关键字to等同于把百分比设置
                         成100%。
                                                                                                     20
                  我们并不局限于0%和100%:可以分步提供动画,比如10%、15%,等等。要把@keyframe属性
              赋值到想要应用动画的类上,我们使用animation关键字,它把动画应用到CSS选择器选定的元                                        21
              素上。

                  .fade-in:hover {
                      -webkit-animation: 2s firstAnimation;                                          22
                      animation: 2s firstAnimation;
                  }
                                                                                                     23
                  用ngAnimate,我们把firstAnimation值绑定到任意用.fade-in类选定的元素上。Angular
              自动为我们添加和移除.ng-enter类,所以我们可以简单地把事件添加到.fade-in.ng-enter
              类上:                                                                                    24

                  .fade-in.ng-enter {
                      -webkit-animation: 2s firstAnimation;                                          25
                      animation: 2s firstAnimation;
                  }
                                                                                                     26

              22.5 交错 CSS 过渡/动画
                                                                                                     27
                  ngAnimate捆绑了一个额外的特性,用指定的延迟来间隔同时存在的动画。这意味着如果10
              个项进入了一个ngRepeat列表,每个项可以在上一个之后延迟X毫秒插入。这样产生的特效就是
              一个交错特效,ngAnimate把CSS过渡和动画处理成这样。                                                        28


              22.5.1 交错CSS过渡                                                                         29

                  沿用ng-enter和ng-enter-active这样组织CSS过渡代码的格式,可以添加一个额外的CSS
              类来提供交错延迟。使用下面的CSS代码,可以用CSS过渡来给我们的.fade-in类添加一个交错                                       30
              特效。
                                                                                                     31
                  .fade-in.ng-enter-stagger {
                      -webkit-transition-delay:200ms;
                       transition-delay:200ms;
                                                                                                     32
                       /* 防止意外CSS继承的保护措施 */
                       -webkit-transition-duration:0;
                       transition-duration:0;                                                        33
                  }
                  下面的代码会在每个后续项以动画方式进入之后,执行200毫秒的停顿。注意,另有一个CSS
                                                                                                     34
              属性指定了持续时间,并且设置成零了。为什么?它在此是一个安全防护,防止意外的CSS继承
              基础CSS类。要是没有这种保障,交错特效可能就会被忽略了。
                                                                                                     35
                  但是这对于我们的.fade-in类意味着什么呢?想象一下我们正在使用一个ngRepeat元素,
              这个元素使用的就是.fade-in类。
                                                                                                     36
                  <div ng-repeat="item in items" class="fade-in">
   316   317   318   319   320   321   322   323   324   325   326