国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS中實現顯示或隱藏動畫效果的方式總結

2019-11-20 10:53:18
字體:
來源:轉載
供稿:網友

AngularJS 是一組用于創建單頁Web應用的豐富框架,給構建豐富交互地應用帶來了所有需要的功能。其中一項主要的特性就是Angular帶來了對動畫的支持。

本篇體驗在AngularJS中實現在"顯示/隱藏"這2種狀態切換間添加動畫效果。

通過CSS方式實現顯示/隱藏動畫效果

思路:

→npm install angular-animage
→依賴:var app = angular.module("app",["ngAnimate"]);
→controller中一個變量接收bool值
→界面中提供一個按鈕,點擊改變bool值
→界面中顯示/隱藏的區域提供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;} 

通過animation方法實現顯示/隱藏動畫效果

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

 animation可以在某個類名上加上leave,enter事件,leave和enter函數內部如何實現動畫效果呢?可以通過TweenMax.min.js實現。

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">點我</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是一個很好的樣式庫。

使用direcive的方式實現顯示/隱藏動畫效果

是否可以在顯示/隱藏的div部分加上一個屬性,比如hide-me="app.isHidden",hide-me這個屬性監控app.isHidden,根據值的變化情況再來決定是否顯示。

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>

以上內容是小編給大家介紹的AngularJS中實現顯示或隱藏動畫效果的方式總結,希望大家喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正蓝旗| 灌云县| 霍山县| 城市| 竹溪县| 武胜县| 丰宁| 方山县| 鄂托克旗| 侯马市| 广灵县| 柳林县| 淳安县| 类乌齐县| 鹿邑县| 元阳县| 浑源县| 石景山区| 庆云县| 美姑县| 阿勒泰市| 巴彦县| 石城县| 吉安县| 清水河县| 湟中县| 古蔺县| 承德县| 华阴市| 卫辉市| 涞源县| 平乐县| 浙江省| 甘洛县| 宁晋县| 新干县| 柳河县| 新巴尔虎左旗| 凤凰县| 浪卡子县| 博白县|