站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        ngAnimate插件是做什么的?

        ngAnimate插件是做什么的?

        ngAnimate插件如其名字一樣是為元素提供動畫的。

        怎么定義動畫?

        第一步必須是引入插件

        <script src="//cdn.bootcss.com/angular.js/1.3.20/angular.js?1.1.11"></script><script src="//cdn.bootcss.com/angular.js/1.3.20/angular-animate.min.js?1.1.11"></script>

        第二步讓app引入(依賴)這個插件


        var appH5=angular.module("app",['ngAnimate']);  appH5.controller("myTabCtrl",['$scope',function($scope){           $scope.isShow=true;  }])<body ng-controller="myTabCtrl"><input type="checkbox"  ng-model="isShow" /><div class="new-item" ng-if="isShow">我是要動畫的元素</div></body>添加動畫的第一種方式:通過css3.0的方式    樣式定義示例  .new-item{    padding: 10px;    border-bottom: 1px solid #ededed;    font-size: 1.5rem;    position: relative;    transition:all 0.5s;  }  /*元素進入頁面初始狀態(tài)*/  .new-item.ng-enter{    top: 10px;  }  /*進入頁面動畫后的最終狀態(tài)*/  .new-item.ng-enter-active{    top: 0px;  }  /*元素移出頁面初始狀態(tài)*/  .new-item.ng-leave{    opacity:1;  }  /*移出頁面動畫后的最終狀態(tài)*/  .new-item.ng-leave-active{    opacity:0;  }  //html<div class="new-item">我是要動畫的元素</div>


        • 為什么添加樣式就可以產(chǎn)生動畫?
          當元素進入頁面時,angular會給元素依次添加上class ng-enter 和 ng-enter-active,相信大家都知道,CSS3.0在一個元素定義了 transition 之后,兩個相同屬性的屬性值改變就會用過渡動畫來實現(xiàn)屬性值的改變。當元素移除頁面時也是同理,所以我們只要定義元素的四個class來定義這四個時間點的狀態(tài),其他的就交給angular來做就好了。

        • 支持這種方式定義動畫的指令有哪些?
          ng-if、ng-view、ng-repeat、ng-include、ng-switch
          這幾個指令是通過新建節(jié)點和移除節(jié)點來實現(xiàn)元素的顯示和隱藏的

        • ng-repeat 的不同之處

          .new-item{    padding: 10px;    border-bottom: 1px solid #ededed;    font-size: 1.5rem;    position: relative;    transition:all 0.5s;  }  .new-item.ng-enter{    top: 10px;  }  .new-item.ng-enter-active{    top: 0px;  }  .new-item.ng-enter-stagger{/*ng-repeat提供了這個樣式,來實現(xiàn)每一個item條目的依次執(zhí)行某個動畫 */    animation-delay:100ms;    -webkit-animation-delay:100ms;   }  .new-item.ng-leave{    opacity:1;  }  .new-item.ng-leave-active{    opacity:1;  }  .new-item.ng-leave-stagger{    animation-delay:100ms;    -webkit-animation-delay:100ms;   }  //html<div class="new-item" ng-repeat="new in news">{{new.title}}</div>

        剛才說通過新建和刪除元素來實現(xiàn)的指令是可以進行動畫的,那么只是更改樣式顯示或者隱藏元素的指令(ng-show ng-hide ng-class )能不能進行動畫呢?

          
        /*元素隱藏初始狀態(tài)*/  .new-item.ng-hide-add{      opacity:1;  }  /*隱藏操作動畫后的最終狀態(tài)*/  .new-item.ng-hide-add-active{      opacity:0;  }  /*元素顯示初始狀態(tài)*/  .new-item.ng-hide-remove{      top: 10px;  }  /*顯示操作動畫后的最終狀態(tài)*/  .new-item.ng-hide-remove-active{      top: 0px;  }
         

        添加動畫的第二種方式:通過js的方式

        //ng-if、ng-view、ng-repeat、ng-include、ng-switch 指令  appH5.animation(".new-item",function(){      return {          leave:function(element,done){              //第一個參數(shù)是運動的元素,第二個參數(shù)是動畫完成后的回調(diào),必須調(diào)用的,不調(diào)用則指令功能不會執(zhí)行              $(element).animate({width:0,height:0},1000,done);//借助jQuery          },          enter:function(element,done){              $(element).css({width:100,height:100});//借助jQuery              $(element).animate({width:100,height:100},1000,done)//借助jQuery          }      }  });    //ng-show ng-hide ng-class 指令  appH5.animation(".new-item",function(){      return {          addClass:function(element,sClass,done){              //第一個參數(shù)是運動的元素              //第二個參數(shù)是元素的樣式-->一般用不上              //第三個參數(shù)是動畫完成后的回調(diào),必須調(diào)用的,不調(diào)用則指令功能不會執(zhí)行              $(element).animate({width:0,height:0},1000,done)          },          removeClass:function(element,sClass,done){              $(element).css({width:100,height:100});              $(element).animate({width:100,height:100},1000,done)          }      }  });

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 国产精品99久久久久久猫咪 | 成人区精品一区二区不卡| 国产精品国产欧美综合一区| 伊人久久精品影院| 99久久国产热无码精品免费久久久久| 国产精品亚洲аv无码播放| 亚洲乱码日产精品a级毛片久久| 99久久精品无码一区二区毛片| 91久久精品91久久性色| 日韩精品无码久久久久久 | 国产精品成人小电影在线观看| 福利姬在线精品观看| 无码人妻精品中文字幕| 亚洲精品第一国产综合精品99| 久久99精品国产99久久6| 国产精品极品| 91亚洲精品麻豆| 四虎国产精品免费久久久| 福利姬在线精品观看| 国产精品久久久久影院色| 国产亚洲精品无码成人| 人人妻人人澡人人爽人人精品| 亚洲精品亚洲人成人网| 亚洲精品线路一在线观看| 欧美日韩精品久久久久| 国产在线观看高清精品| 国产精品一区12p| 国产亚洲精品看片在线观看 | 精品欧洲av无码一区二区| 久久水蜜桃亚洲av无码精品麻豆| 亚洲AV无码国产精品色午友在线 | 人妻一区二区三区无码精品一区| 免费短视频软件精品一区二区| 久久久精品波多野结衣| 麻豆精品| 中国精品18videosex性中国| 亚洲精品无码av人在线观看| 亚洲av成人无码久久精品| 久久久久久夜精品精品免费啦| 精品熟女少妇a∨免费久久| 精品久久久久久久久午夜福利|