最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用CSS3在Angular中實(shí)現(xiàn)動(dòng)畫

 更新時(shí)間:2016年01月15日 11:27:50   作者:小謝53  
這篇文章主要介紹了如何利用CSS3在Angular中實(shí)現(xiàn)動(dòng)畫效果,對(duì)angular動(dòng)畫相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧

廢話不多說(shuō)了,直接給大家貼實(shí)例代碼。

直接看例子:

<!DOCTYPE HTML>
<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>ngAnimate插件1</title> <script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular.min.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular-animate.min.js"></script> <style type="text/css"> 
.box{width:200px;height:200px;background-color:red;transition:1s all;}
/*顯示操作*/
.box.ng-enter{opacity:0;}
.box.ng-enter-active{opacity:1;}
/*隱藏操作*/
.box.ng-leave{opacity:1;}
.box.ng-leave-active{opacity:0;}
</style>
</head>
<body>
<div ng-controller="Aaa">
<input type="checkbox" ng-model="bBtn">
<div class="box" ng-if="bBtn"></div>
</div>
<script type="text/javascript">
var m1 = angular.module('myApp',['ngAnimate']);
m1.controller('Aaa',['$scope',function($scope){
$scope.bBtn = true;
}]);
</script>
</body>
</html>

引入angular-animate插件,我們綁定了ng-if指令,在刪除和添加DOM節(jié)點(diǎn)的時(shí)候,angular會(huì)添加指定的class,方便我們完成動(dòng)畫。

.ng-enter
.ng-enter-active
.ng-leave
.ng-leave-active

現(xiàn)在再看看顯示和隱藏。

<!DOCTYPE HTML>
<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>ngAnimate插件4</title>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular.min.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular-animate.min.js"></script>
<style type="text/css">
.box{width:200px;height:200px;background-color:red;transition:1s all;}
/*顯示操作*/
.box.ng-hide-remove{opacity:0;}
.box.ng-hide-remove-active{opacity:1;}
/*隱藏操作*/
.box.ng-hide-add{opacity:1;}
.box.ng-hide-add-active{opacity:0;}
</style>
</head>
<body>
<div ng-controller="Aaa">
<input type="checkbox" ng-model="bBtn">
<div class="box" ng-show="bBtn"></div>
</div>
<script type="text/javascript">
var m1 = angular.module('myApp',['ngAnimate']);
m1.controller('Aaa',['$scope',function($scope){
$scope.bBtn = true;
}]);
</script>
</body>
</html> 

.ng-hide-remove
.ng-hide-remove-active
.ng-hide-add
.ng-hide-add-active

這個(gè)例子我們使用的是ng-show,屬于顯示和隱藏。上一個(gè)例子是ng-if,屬于添加和刪除。

回顧上一節(jié)我們提到的路由,我們可以結(jié)合起來(lái)操作。

<!DOCTYPE HTML>
<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>ngAnimate插件2</title> <script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript" src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular-route.min.js"></script>
<script type="text/javascript" src="http://cdn.bootcss.com/angular.js/1.3.0-beta.13/angular-animate.min.js"></script> <style type="text/css">
.box{transition:1s all;position:absolute;}
/*顯示操作*/
.box.ng-enter{opacity:0;}
.box.ng-enter-active{opacity:1;}
/*隱藏操作*/
.box.ng-leave{opacity:1;}
.box.ng-leave-active{opacity:0;}
</style>
</head>
<body>
<div ng-controller="Aaa">
<a href="javascript:void(0);" ng-click="$location.path('aaa')">首頁(yè)</a>
<a href="javascript:void(0);" ng-click="$location.path('bbb')">內(nèi)容</a>
<a href="javascript:void(0);" ng-click="$location.path('ccc')">標(biāo)題</a>
<div class="box" ng-view></div>
</div>
<script type="text/javascript">
var m1 = angular.module('myApp',['ngRoute','ngAnimate']);
m1.config(['$routeProvider',function($routeProvider){
$routeProvider.when('/aaa',{
template : '<h1>AAA</h1>{{name}}',
controller : 'Aaa'
}).when('/bbb',{
template : '<h1>BBB</h1>{{name}}',
controller : 'Bbb'
}).when('/ccc',{
template : '<h1>CCC</h1>{{name}}',
controller : 'Ccc'
}).otherwise({
redirectTo : '/aaa'
});
}]);
m1.controller('Aaa',['$scope','$location','$routeParams',function($scope,$location,$routeParams){
$scope.name = 'xiecg-Aaa';
$scope.$location = $location;
}]);
m1.controller('Bbb',['$scope',function($scope){
$scope.name = 'xiecg-Bbb';
}]);
m1.controller('Ccc',['$scope',function($scope){
$scope.name = 'xiecg-Ccc';
}]);
</script>
</body>
</html> 

這樣在切換頁(yè)面的時(shí)候就有淡入淡出的效果。

再回顧前面的幾章講的百度搜索:

<!DOCTYPE HTML>
<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>ngAnimate插件3</title> <script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular.min.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular-animate.min.js"></script> <style type="text/css">
.box{transition:1s all;}
/*顯示操作*/
.box.ng-enter{opacity:0;}
.box.ng-enter-active{opacity:1;}
/*隱藏操作*/
.box.ng-leave{display:none;}
.box.ng-enter-stagger{animation-delay:0.1s;}
</style>
</head>
<body>
<div ng-controller="Aaa">
<input type="text" ng-model="name" ng-keyup="change(name)">
<input type="button" ng-click="change(name)" value="搜索">
<ul>
<li class="box" ng-repeat="d in data">{wppm3vysvbp}</li>
</ul>
</div>
<script type="text/javascript">
var m1 = angular.module('myApp',['ngAnimate']);
m1.controller('Aaa',['$scope','$http','$timeout',function($scope,$http,$timeout){
var timer = null;
$scope.data = [];
$scope.change = function(name){
$timeout.cancel(timer);
timer = $timeout(function(){
$http({
method : 'JSONP',
url : 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd='+name+'&cb=JSON_CALLBACK',
}).success(function(data,state,headers,config){
console.log(data);
$scope.data = data.s;
}).error(function(data){
console.log(data);
});
},500);
};
}]);
</script>
</body>
</html> 

通過(guò)跨域我們得到百度返回過(guò)來(lái)的數(shù)據(jù),依次過(guò)渡顯示到頁(yè)面上。


下面來(lái)看JS動(dòng)畫的例子:

<!DOCTYPE HTML>
<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>ngAnimate插件5</title>
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular.min.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular-animate.min.js"></script>
<style type="text/css">
.box{width:200px;height:200px;background-color:red;}
</style>
</head>
<body>
<div ng-controller="Aaa">
<input type="checkbox" ng-model="bBtn">
<div class="box" ng-if="bBtn"></div>
</div>
<script type="text/javascript">
var m1 = angular.module('myApp',['ngAnimate']);
//ng-if
m1.animation('.box',function(){
return {
//hide(刪除)
leave : function(element,done){
//console.log(element,done); //元素節(jié)點(diǎn)&刪除節(jié)點(diǎn)的回調(diào)函數(shù)
$(element).animate({
width : 0,
height : 0
},1000,done);
},
//show(填充)
enter : function(element,done){
//ng-if會(huì)動(dòng)態(tài)創(chuàng)建元素,元素默認(rèn)就有200的高寬。。。
$(element).css({
width : 0,
height : 0
}).animate({
width : 200,
height : 200
},1000,done);
}
};
});
m1.controller('Aaa',['$scope',function($scope){
$scope.bBtn = true;
}]);
</script>
</body>
</html> 

JS動(dòng)畫我們使用JQ的動(dòng)畫庫(kù)來(lái)完成,注意我們?cè)谝晥D上使用的是ng-if,表示添加和刪除DOM節(jié)點(diǎn),所以我們?cè)诳刂破鱮eturn leave&enter。

JS動(dòng)畫有了ng-if,自然就是ng-show。

<!DOCTYPE HTML>
<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>ngAnimate插件5</title>
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular.min.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular-animate.min.js"></script>
<style type="text/css">
.box{width:200px;height:200px;background-color:red;}
</style>
</head>
<body>
<div ng-controller="Aaa">
<input type="checkbox" ng-model="bBtn">
<div class="box" ng-show="bBtn"></div>
</div>
<script type="text/javascript">
var m1 = angular.module('myApp',['ngAnimate']);
//ng-show
m1.animation('.box',function(){
return {
//hide(隱藏)
addClass : function(element,sClass,done){
//console.log(element,sClass,done); //元素節(jié)點(diǎn)&樣式名&刪除節(jié)點(diǎn)的回調(diào)函數(shù)
$(element).animate({
width : 0,
height : 0
},1000,done);
},
//show(顯示)
removeClass : function(element,sClass,done){
$(element).animate({
width : 200,
height : 200
},1000,done); 
}
};
});
m1.controller('Aaa',['$scope',function($scope){
$scope.bBtn = true;
}]);
</script>
</body>
</html>

在控制器return addClass&removeClass,表示隱藏和顯示。

相關(guān)文章

  • AngularJs返回前一頁(yè)面時(shí)刷新一次前面頁(yè)面的方法

    AngularJs返回前一頁(yè)面時(shí)刷新一次前面頁(yè)面的方法

    今天小編就為大家分享一篇AngularJs返回前一頁(yè)面時(shí)刷新一次前面頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • NodeJs——入門必看攻略

    NodeJs——入門必看攻略

    下面小編就為大家?guī)?lái)一篇NodeJs——入門必看攻略。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • AngularJS 最常用的功能匯總

    AngularJS 最常用的功能匯總

    angularjs功能在項(xiàng)目開發(fā)中經(jīng)常會(huì)用到,本文給大家總結(jié)了八種angularjs最常用的功能,感興趣的朋友一起學(xué)習(xí)吧
    2016-02-02
  • AngularJS中update兩次出現(xiàn)$promise屬性無(wú)法識(shí)別的解決方法

    AngularJS中update兩次出現(xiàn)$promise屬性無(wú)法識(shí)別的解決方法

    最近在工作中用AngularJS中update了兩次之后發(fā)現(xiàn)$promise屬性無(wú)法識(shí)別了,后來(lái)通過(guò)查找相關(guān)的資料終于解決了,想著記錄下方便自己或者有需要的朋友,所以本文主要介紹了AngularJS中update兩次出現(xiàn)了$promise屬性無(wú)法識(shí)別的解決方法,需要的朋友可以參考借鑒。
    2017-01-01
  • AngularJS服務(wù)service用法總結(jié)

    AngularJS服務(wù)service用法總結(jié)

    這篇文章主要介紹了AngularJS服務(wù)service用法,結(jié)合實(shí)例形式總結(jié)分析了服務(wù)Service的概念、功能及自定義服務(wù)的相關(guān)操作技巧,需要的朋友可以參考下
    2016-12-12
  • angularJs select綁定的model取不到值的解決方法

    angularJs select綁定的model取不到值的解決方法

    今天小編就為大家分享一篇angularJs select綁定的model取不到值的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • 詳解Angular路由之子路由

    詳解Angular路由之子路由

    本文將介紹Angular子路由的用法,對(duì)此感興趣的同學(xué),可以參考下
    2021-05-05
  • AngularJS的ng-click傳參的方法

    AngularJS的ng-click傳參的方法

    本篇文章主要介紹了AngularJS的ng-click傳參的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 使用AngularJS對(duì)路由進(jìn)行安全性處理的方法

    使用AngularJS對(duì)路由進(jìn)行安全性處理的方法

    這篇文章主要介紹了使用AngularJS對(duì)路由進(jìn)行安全性處理的方法,AngularJS是一款高人氣的JavaScript庫(kù),需要的朋友可以參考下
    2015-06-06
  • 詳解AngularJs中$resource和restfu服務(wù)端數(shù)據(jù)交互

    詳解AngularJs中$resource和restfu服務(wù)端數(shù)據(jù)交互

    之前小編和大家分享過(guò)使用$http同服務(wù)器進(jìn)行通信,但是功能上比較簡(jiǎn)單,angularjs還提供了另外一個(gè)可選的服務(wù)$resource,使用它可以非常方便的同支持restful的服務(wù)單進(jìn)行數(shù)據(jù)交互。下面來(lái)一起看看吧。
    2016-09-09

最新評(píng)論

鲁山县| 蒙自县| 宁津县| 阿巴嘎旗| 日照市| 施甸县| 子长县| 留坝县| 沅陵县| 增城市| 扶绥县| 壤塘县| 荣成市| 东城区| 若尔盖县| 宣恩县| 龙江县| 略阳县| 南木林县| 太保市| 巧家县| 博爱县| 林甸县| 南岸区| 彰武县| 甘泉县| 江山市| 页游| 兴安县| 张家口市| 色达县| 宽甸| 济源市| 汉阴县| 定襄县| 平潭县| 阿勒泰市| 宁阳县| 峨眉山市| 霍州市| 石狮市|