AngularJS中实现显示或隐藏动画效果的方式总结_AngularJS

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动画效果
, angularjs显示动画
angularjs隐藏动画
angularjs 动画效果、css3显示隐藏动画效果、js实现动画效果、ios 点赞实现动画效果、java实现动画效果,以便于您获取更多的相关知识。

时间: 2024-09-15 10:07:02

AngularJS中实现显示或隐藏动画效果的方式总结_AngularJS的相关文章

WPS演示中怎么添加闪烁字幕动画效果

  WPS演示中怎么添加闪烁字幕动画效果 1.打开WPS演示,新建有一个幻灯片,为了不影响制作过程,我删除了标题框和副标题框. 2.点击绘图工具栏--自选图形--基本形状--笑脸,在幻灯片中添加该表情动画. 3.右键点击该表情,选择设置对象格式. 4.在颜色与线条选项卡中,填充色选择填充效果. 5.颜色勾选预设,在预设颜色中选择一种效果,确定. 6.右键点击表情,选择自定义动画,在右侧点击添加效果--进入--盒状. 7.开始选择单击时,方向选择内,速度选为快速. 8.再次点击添加效果--动作路径

京东首页楼层左侧图标的动画效果实现方式

问题描述 京东首页楼层左侧图标的动画效果实现方式 京东首页楼层图标的动画效果实现方式,希望有关demo可以运行实现效果的 京东首页楼层图标的动画效果实现方式,希望有关demo可以运行实现效果的 解决方案 大概知道原理,两个网页之间的转换,网页不同的地方就是主界面那个弹出框覆盖后面: 解决方案二: 应该不是的吧,应该是页面滚动的距离顶部时背景换成另外一张,我只知道是这样,但是写不出来

AngularJS实现元素显示和隐藏的几个案例_AngularJS

案例一:控制html元素显示和隐藏有n种方法:html的hidden.css的display.jquery的hide()和show().bootstrap的.hide.今天的重点不是显示和隐藏,而是监听某个布尔变量值,自动改变元素显示和隐藏状态.监听函数.if判断.选择dom.设置dom,5行代码搞不定吧,而且毫无技术含量. 看代码: <!DOCTYPE html> <html ng-app> <head> <meta charset="utf-8&qu

FLASH中实现眨眼睛的动画效果

许多FLASH动画短片和MV中经常有精美生动的动画人物出现,配合眨眼动作.口形变化以及头发的飘动,再加上人物的配音,一个活脱脱的动画人物形象就出现在FLASH动画中了.很多人都想知道这样的人物是如何做得栩栩如生的,尤其是其中的简单动画效果,如眨眼的动作,如何制作人物的眨眼动画呢?其实技巧很简单,甚至都不需要专门教程来指导,但是对于初学者,笔者认为却是应该用一个实例教程来给予指导的.最近发现帝国的在线教程中也有很多这样的提问--"在FLASH中如何制作效果逼真的人物眨眼效果?",其他的F

PPT中如何实现川流不息的动画效果

朋友提出这样的问题:在PowerPoint中,如何让箭头从左到右往复移动,并且不停地播放,实现川流不息的动画效果?文章末尾提供原文件供大家下载参考. 以下是我给出的解决方案,供大家参考: 1.启动PowerPoint,新建一演示文稿,并取好名保存好. 2.在幻灯片中输入相应的字符,然后用"绘图"工具栏中的"箭头"按钮在幻灯片中画出若干个箭头,并填充上不同的色彩. 3.将希望从左(右)移动移动到右(左)的箭头,定位在幻灯片右(左)外侧,让箭头尾部位于幻灯片边缘. 4.

wps怎么制作从信封中掏出一封信的动画效果?

  用wps演示制作信封信纸展开动画效果. 1.首先设置好背景. 2.插入-形状-没有侧角的矩形,通过编辑顶点,调整边长,改变填充色和边框色. 3.插入-形状-任意多边形,像图中一样沿着之前的形状画,设置一样的填充色和边框色. 4.再画个任意多边形,并与第三步画的形状对齐后组合.再将组合图与第一个图形对齐.

Word2007中标尺显示或隐藏的恢复技巧

  在前面我们知道了如何在Word2007文档中设置装订线,以及页边距.而这些设置,人们通常是通过自定义数值来进行设置的,但如果没有空间概念的朋友来说,简直是挑战,其实我们可以用标尺来进行辅助设置. Word2007文档中显示或隐藏标尺的方法: 标尺 进入"视图"选项卡,在"显示/隐藏"选项组中将"标尺"钩上就是显示,将钩取消则是隐藏标尺. Word2007"垂直标尺"不见了,该如何找回来: 单击"Office按钮&

flash as中为动态蒙版添加动画效果

创建一个新的 Flash 文档,并将其保存为 dynmask.fla. 将下面的 ActionScript 添加到时间轴的第 1 帧:  代码如下 复制代码 import mx.transitions.Tween; import mx.transitions.easing.*; var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) {     target_mc.

AngularJS中关于ng-class指令的几种实现方式详解_AngularJS

前言 开发中经常会遇到这样的需求,一个元素需要在不同的状态下呈现不同的样子,而在这所谓的的样子当然就是改变其css的属性,而实现动态的改变属性值,我们就需要实现动态的更换其class属性值. 在这给大家介绍三种方法来实现,大家可以根据自己的需求来选择方式,下面来看看. 第一种:通过数据的双向绑定(不推荐) <div ng-controller="firstController"> <div ng-class="{{className}}">&