亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

AngularJS中實(shí)現(xiàn)顯示或隱藏動(dòng)畫(huà)效果的方式總結(jié)

 更新時(shí)間:2015年12月31日 11:30:29   作者:Darren Ji  
AngularJS 是一組用于創(chuàng)建單頁(yè)Web應(yīng)用的豐富框架,給構(gòu)建豐富交互地應(yīng)用帶來(lái)了所有功能,其中一項(xiàng)主要的特性是Angular對(duì)動(dòng)畫(huà)的支持。下面通過(guò)本文給大家介紹AngularJS中實(shí)現(xiàn)顯示或隱藏動(dòng)畫(huà)效果的方式總結(jié),對(duì)angularjs動(dòng)畫(huà)效果相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)

AngularJS 是一組用于創(chuàng)建單頁(yè)Web應(yīng)用的豐富框架,給構(gòu)建豐富交互地應(yīng)用帶來(lái)了所有需要的功能。其中一項(xiàng)主要的特性就是Angular帶來(lái)了對(duì)動(dòng)畫(huà)的支持。

本篇體驗(yàn)在AngularJS中實(shí)現(xiàn)在"顯示/隱藏"這2種狀態(tài)切換間添加動(dòng)畫(huà)效果。

通過(guò)CSS方式實(shí)現(xiàn)顯示/隱藏動(dòng)畫(huà)效果

思路:

→npm install angular-animage
→依賴(lài):var app = angular.module("app",["ngAnimate"]);
→controller中一個(gè)變量接收bool值
→界面中提供一個(gè)按鈕,點(diǎn)擊改變bool值
→界面中顯示/隱藏的區(qū)域提供ng-if和controller中的bool值綁定

app.js

var app = angular.module("app",["ngAnimate"]);
app.controller("AppCtrl", function(){
 this.toggle = true;
})

index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title></title>
 <link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css"/>
 <link rel="stylesheet" href="styles.css"/>
</head>
<body ng-app="app" ng-controller="AppCtrl as app">
<button class="btn" ng-click="app.toggle=!app.toggle">Toggle Animation</button>
<div class="toggle" ng-if="app.toggle">Some content here</div>
<script src="../node_modules/angular/angular.min.js"></script>
<script src="../node_modules/angular-animate/angular-animate.min.js"></script>
<script src="app.js"></script>
</body>
</html> 

styes.css

 .toggle{
 -webkit-transition: linear 1s;
 -moz-transition: linear 1s;
 -ms-transition: linear 1s;
 -o-transition: linear 1s;
 transition: linear 1s;
}
.toggle.ng-enter{
 opacity: 0;
}
.toggle.ng-enter-active{
 opacity: 1;
}
.toggle.ng-leave{
 opacity: 1;
}
.toggle.ng-leave-active{
 opacity: 0;
} 

通過(guò)animation方法實(shí)現(xiàn)顯示/隱藏動(dòng)畫(huà)效果

 app.animation("某個(gè)類(lèi)名", function(){
 return {
  leave: function(element, done){
  },
  enter: function(element, done){
  }
 }
}) 

 animation可以在某個(gè)類(lèi)名上加上leave,enter事件,leave和enter函數(shù)內(nèi)部如何實(shí)現(xiàn)動(dòng)畫(huà)效果呢?可以通過(guò)TweenMax.min.js實(shí)現(xiàn)。

app1.js

ar app = angular.module("app",["ngAnimate"]);
app.controller("AppCtrl", function(){
 this.toggle = true;
})
app.animation(".toggle", function(){
 return {
  leave: function(element, done){
   //element.text("nooooo");
   TweenMax.to(element, 1, {opacity:0, onComplete:done})
  },
  enter: function(element, done){
   TweenMax.from(element, 1, {opacity:0, onComplete:done})
  }
 }
}) 

index1.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title></title>
 <link rel="stylesheet" href="../node_modules/topcoat/css/topcoat-desktop-light.min.css"/>
</head>
<body class="well-lg" ng-app="app" ng-controller="AppCtrl as app">
<button class="topcoat-button--large--cta" ng-click="app.toggle = !app.toggle">點(diǎn)我</button>
<hr/>
<div class="topcoat-notification toggle" ng-if="app.toggle">I'm too your to fade</div>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.0/TweenMax.min.js"></script>
<script src="../node_modules/angular/angular.min.js"></script>
<script src="../node_modules/angular-animate/angular-animate.min.js"></script>
<script src="app1.js"></script>
</body>
</html> 

其中,npm install topcoat是一個(gè)很好的樣式庫(kù)。

使用direcive的方式實(shí)現(xiàn)顯示/隱藏動(dòng)畫(huà)效果

是否可以在顯示/隱藏的div部分加上一個(gè)屬性,比如hide-me="app.isHidden",hide-me這個(gè)屬性監(jiān)控app.isHidden,根據(jù)值的變化情況再來(lái)決定是否顯示。

app3.js

var app=angular.module('app',["ngAnimate"]);
app.controller("AppCtrl", function(){
 this.isHidden = false;
 this.fadeIt = function(){
  //TweenMax.to($("#my-badge"), 1, {opacity:0})
  this.isHidden = !this.isHidden;
 }
})
app.directive("hideMe", function($animate){
 return function(scope, element, attrs){
  scope.$watch(attrs.hideMe, function(newVal){
   if(newVal){
    //TweenMax.to(element, 1, {opacity:0});
    $animate.addClass(element, "fade");
   } else{
    $animate.removeClass(element, "fade");
   }
  })
 }
})
app.animation(".fade", function(){
 return {
  addClass: function(element, className){
   TweenMax.to(element, 1, {opacity:0});
  },
  removeClass: function(element, className){
   TweenMax.to(element, 1, {opacity:1});
  }
 }
}) 

index3.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title></title>
 <link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css"/>
</head>
<body ng-app="app" ng-controller="AppCtrl as app">
<button id="my-button" class="btn-primary" ng-click="app.fadeIt()">Click to fade</button>
<div id="my-badge" class="badge" hide-me="app.isHidden">Fade me</div>
<script src="../node_modules/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.0/TweenMax.min.js"></script>
<script src="../node_modules/angular/angular.min.js"></script>
<script src="../node_modules/angular-animate/angular-animate.min.js"></script>
<script src="app3.js"></script>
</body>
</html>

以上內(nèi)容是小編給大家介紹的AngularJS中實(shí)現(xiàn)顯示或隱藏動(dòng)畫(huà)效果的方式總結(jié),希望大家喜歡。

相關(guān)文章

最新評(píng)論