栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

移除一个剩余的ng-repeat物品时,我该如何为其动画设置动画?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

移除一个剩余的ng-repeat物品时,我该如何为其动画设置动画?

您可以通过设置

max-height
属性动画来实现。查看此示例:

http://jsfiddle.net/k4sR3/8/

您需要为选择一个足够高的值

max-height
(在我的示例中,我使用90px)。最初添加项目时,您希望它以0高度开始(我也
left
希望将项目从左侧滑入
opacity
,但如果它们不符合以下条件,则可以将其删除:你在做):

.repeated-item.ng-enter {    -webkit-transition:0.5s linear all;    -moz-transition:0.5s linear all;    -o-transition:0.5s linear all;    transition:0.5s linear all;    max-height: 0;    opacity: 0;    left: -50px;}

然后,在

ng-enter-active
规则中为这些属性设置最终值:

.repeated-item.ng-enter.ng-enter-active {    max-height: 90px;    opacity: 1;    left: 0;}

删除项目有些棘手,因为您将需要使用基于关键帧的动画。再次,您希望设置动画

max-height
,但是这次您要从90px开始并将其减小到0。随着动画的运行,该项目将缩小,而以下所有项目将平滑向上滑动。

首先,定义将要使用的动画:

@keyframes my_animation {  from {    max-height: 90px;    opacity: 1;    left: 0;  }  to {    max-height: 0;    opacity: 0;    left: -50px;  }}

(为简便起见,我在这里省略了供应商特定的定义,

@-webkit-keyframes
@-moz-keyframes
等-看看上面的全样本的jsfiddle。)

然后,声明您将使用此动画,

ng-leave
如下所示:

.repeated-item.ng-leave {  -webkit-animation:0.5s my_animation;  -moz-animation:0.5s my_animation;  -o-animation:0.5s my_animation;  animation:0.5s my_animation;}

基本

如果任何人都在努力弄清楚如何使AngularJS动画完全正常工作,这是一个简短的指南。

首先,使动画支持,你将需要包括一个附加文件

angular-animate.js
之后 您加载
angular.js
。例如:

<script type="text/javascript" src="angular-1.2/angular.js"></script><script type="text/javascript" src="angular-1.2/angular-animate.js"></script>

接下来,您需要

ngAnimate
通过将其添加到模块的依赖项列表中进行加载(在第二个参数中):

var myApp = angular.module('myApp', ['ngAnimate']);

然后,为您的

ng-repeat
项目分配一个类。您将使用此类的名称来分配动画。在我的示例中,我用作
repeated-item
名称:

<li ng-repeat="item in items" >

然后,使用

repeated-item
类以及特殊类
ng-enter
,在CSS中定义动画
ng-leave
,并
ng-move
在添加,删除或移动项目时将Angular添加到项目中。

AngularJS动画的官方文档在这里:

http://docs.angularjs.org/guide/animations



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/388253.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号