AngularJS中实现显示或隐藏动画效果的方式总结
作者:bea
AngularJS 是一组用于创建单页Web应用的丰富框架,给构建丰富交互地应用带来了所有需要的功能。其中一项主要的特性就是Angular带来了对动画的支持。 本篇体验在AngularJS中实现在"显示/隐藏"这2种状态切换间添加动画效果。 通过CSS方式实现显示/隐藏动画效果 思路: →npm install angular-animage →依赖:var app = angular.module("app",["ngAnimate"]); →controller中一个变量
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中实现显示或隐藏动画效果的方式总结,希望大家喜欢。
有用 | 无用
本篇体验在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中实现显示或隐藏动画效果的方式总结,希望大家喜欢。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 基于javascript实现仿百度输入框自动匹配功能
- js实现搜索框关键字智能匹配代码
- javascript合并表格单元格实例代码
- JS Array.slice 截取数组的实现方法
- jquery实现简单的全选和反选功能
- 基于Javascript实现弹出页面效果
- 基于jQuery实现点击弹出层实例代码
- 基于jQuery实现返回顶部实例代码
- 基于JavaScript实现定时跳转到指定页面
- Javascript获取数组中的最大值和最小值的方法汇总
- 实例详解JavaScript获取链接参数的方法
- 快速学习AngularJs HTTP响应拦截器
- 常见的javascript跨域通信方法
- javascript实现input file上传图片预览效果
- 分享几种比较简单实用的JavaScript tabel切换
- jQuery+ajax实现文章点赞功能的方法
- jQuery实现的超简单点赞效果实例分析
- jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
- jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)