热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Angular$animate

$animate$animate服务提供了基本的DOM操作功能如在DOM里插入、移除和移动元素,以及添加和删除类。这个服务是ngAnimate的核心服务,

$animate

$animate服务提供了基本的DOM操作功能如在DOM里插入、移除和移动元素,以及添加和删除类。这个服务是ngAnimate的核心服务,为CSS和Javascript提供了高档次的动画。

$animate在Angular核心都是有效的,无论如何,这个服务为了支持所有动画须包含ngAnimate模块。否则,$animate只能做简单的DOM操作。

方法:

enter(element,parent,after,[done]);

在DOM中,将一个元素插入到元素后面或作为第一个子元素插入父元素。一旦完成,done()将会被回调(如果done()存在)。

element:被插入到DOM的元素。

parent:将会被插入子元素的父元素。(如果下一个元素不存在)。

after:后面插入元素的兄弟元素。

done:当元素被插入DOM后执行的回调函数。

leave(element,[done]);

从DOM中移除元素。一旦完成,done()将会被调用(如果done()存在)。

element:将会被从DOM中移除的元素。

done:当元素被从DOM删除后执行的回调函数。

move(element,parent,after,[done]);

将提供的元素在DOM中移动位置,在父元素的内部或者兄弟元素之间。一旦完成,该done()将会被回调(如果done()存在)

element:在DOM中被移动的元素。

parent:将会被插入子元素的父元素。(如果下一个元素不存在)。

after:后面被放置元素的兄弟元素。

done:当元素在DOM中被移动后执行的回调函数。

addClass(element,className,[done]);

给提供的元素添加提供的CSS类名。一旦完成,done()将会被调用(如果done()存在)。

element:将会被添加class名称的元素。

className:将会被提供的css类。

done:当css类被添加到元素中后执行的回调函数。

removeClass(element,className,[done]);

给提供的元素移除提供的CSS类名。一旦完成,done()将会被调用(如果done()存在)。

element:将会被移除class名称的元素。

className:将会被移除的css类。

done:当css类被从元素中移除后执行的回调函数。

setClass(element,add,remove,[done]);

在元素中添加或者移除给定的css类名。一旦完成,done()将会被调用(如果done()存在)。

element:被设置CSS类的元素。

add:将会被添加到元素的CSS类。

remove:将会从元素上移除的CSS类。

done:当元素中的css类被设置后执行的回调函数。

实现animate动画代码1:

DOCTYPE html>
<html> <head> <meta charset&#61;"utf-8" /> <title>$animatetitle> <script src&#61;"http://cdn.bootcss.com/jquery/3.0.0-alpha1/jquery.js">script> <script src&#61;"../angular-1.4.7/angular.js">script> <script src&#61;"../angular-1.4.7/angular-animate.js">script> <style type&#61;"text/css" media&#61;"screen"> .fade { width: 100px; height: 100px; background-color: #ff9933; transition: 1s linear all; -webkit-transition: 1s linear all; } .fade.ng-enter { opacity: 0; } .fade.ng-enter.ng-enter-active { opacity: 1; } .fade.ng-leave { opacity: 1; } .fade.ng-leave.ng-leave-active { opacity: 0; } style> head> <body ng-app&#61;"Demo" ng-controller&#61;"testCtrl as ctrl"> <button my-dir>Fade in/outbutton> <script type&#61;"text/Javascript"> (function(){ var app &#61; angular.module(&#39;Demo&#39;, ["ngAnimate"]) .directive("myDir", ["$animate", "$compile", myDir]) .controller(&#39;testCtrl&#39;,angular.noop); function myDir($animate, $compile) { function link(scope, element, attr) { var isAppended &#61; false; var parent &#61; element.parent(); var box; element.on(&#39;click&#39;, function () { isAppended &#61; !isAppended; if (isAppended) { box &#61; angular.element(&#39;

&#39;); scope.$apply($animate.enter(box, parent, element, function () { console.log("Done entering"); })); } else { scope.$apply($animate.leave(box, function () { console.log("Done leaving"); })); } }); } return { link: link }; } }());

实现animate动画代码2&#xff1a;

DOCTYPE html>
<html> <head> <meta charset&#61;"utf-8" /> <title>$animatetitle> <script src&#61;"http://cdn.bootcss.com/jquery/3.0.0-alpha1/jquery.js">script> <script src&#61;"../angular-1.4.7/angular.js">script> <script src&#61;"../angular-1.4.7/angular-animate.js">script> <style type&#61;"text/css" media&#61;"screen"> .fade { transition: 1s linear all; -webkit-transition: 1s linear all; } .fade.ng-enter { opacity: 0; } .fade.ng-enter.ng-enter-active { opacity: 1; } .fade.ng-leave { opacity: 1; } .fade.ng-leave.ng-leave-active { opacity: 0; } style> head> <body ng-app&#61;"Demo" ng-controller&#61;"testCtrl as ctrl"> <div> <h1>Test Listh1> <ul> <li ng-repeat&#61;"item in ctrl.items" class&#61;"fade">{{item.value}} <a href&#61;"Javascript:void(0);" ng-click&#61;"ctrl.removeItem($index)">closea> li> ul> <br /> <input type&#61;"text" ng-model&#61;"ctrl.item.value" /> <button ng-click&#61;"ctrl.addItem()">Add Itembutton> div> <script type&#61;"text/Javascript"> (function(){ var app &#61; angular.module(&#39;Demo&#39;, ["ngAnimate"]) .controller(&#39;testCtrl&#39;,testCtrl); function testCtrl() { var vm &#61; this; vm.items &#61; [ { value: "AAAAA" }, { value: "BBBBB" }, { value: "CCCCC" }, { value: "DDDDD" }, { value: "EEEEE" } ]; vm.addItem &#61; function () { vm.items.push(vm.item); vm.item &#61; {}; }; vm.removeItem &#61; function (index) { vm.items.splice(index, 1); }; } }());

实现animate动画代码3&#xff1a;

DOCTYPE html>
<html> <head> <meta charset&#61;"utf-8" /> <title>$animatetitle> <script src&#61;"http://cdn.bootcss.com/jquery/3.0.0-alpha1/jquery.js">script> <script src&#61;"../angular-1.4.7/angular.js">script> <script src&#61;"../angular-1.4.7/angular-animate.js">script> head> <body ng-app&#61;"Demo" ng-controller&#61;"testCtrl as ctrl"> <div> <h1>Test Listh1> <ul> <li ng-repeat&#61;"item in ctrl.items" class&#61;"fade">{{item.value}} <a href&#61;"Javascript:void(0);" ng-click&#61;"ctrl.removeItem($index)">removea> li> ul> <br /> <input type&#61;"text" ng-model&#61;"ctrl.item.value" /> <button ng-click&#61;"ctrl.addItem()">Add itembutton> <br /> <button ng-click&#61;"ctrl.bottomToTop()">我要上头条&#xff01;&#xff01;&#xff01;button> div> <script type&#61;"text/Javascript"> (function(){ var app &#61; angular.module(&#39;Demo&#39;, ["ngAnimate"]) .animation(&#39;.fade&#39;, fade) .controller(&#39;testCtrl&#39;,testCtrl); function fade() { return { enter: function (element, done) { element.css(&#39;display&#39;, &#39;none&#39;); $(element).fadeIn(1000, function () { done(); }); }, leave: function (element, done) { $(element).fadeOut(1000, function () { done(); }); }, move: function (element, done) { element.css(&#39;display&#39;, &#39;none&#39;); $(element).slideDown(500, function () { done(); }); } } } function testCtrl() { var vm &#61; this; vm.items &#61; [ { value: "AAAAA" }, { value: "BBBBB" }, { value: "CCCCC" }, { value: "DDDDD" }, { value: "EEEEE" } ]; vm.addItem &#61; function () { vm.items.push(vm.item); vm.item &#61; {}; }; vm.removeItem &#61; function (index) { vm.items.splice(index, 1); }; vm.bottomToTop &#61; function () { vm.items.unshift(vm.items.pop()); }; } }());

 

关于ngAnimate动画&#xff0c;在google找了好多资料&#xff0c;主要是因为$animate的方法的使用。仅仅是css3的animate使用 和.animation()使用&#xff0c;这个不难&#xff0c;资料也多&#xff0c;以前也写过这些效果...  但是$animate的method使用没找到多少资料&#xff0c;然后在google找了好久&#xff0c;搜的是$animate关键字&#xff0c;好几次没找到。准备自己测试着 写&#xff0c;在controller写出来发现不能绑定到哪个DOM元素去使用&#xff0c;然后想到应该可能是在directive使用的&#xff0c;于是找指令中的$animate 使用资料&#xff0c;终于找到了一些用法。哈哈哈...这里就只用$animate.enter和$animate.leave做示范好了&#xff0c;其他的方法都是类似使 用...




推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
author-avatar
星魂陨石
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有