角,CSS和Javascript之间唯一的
区别是他们的定义。没有差异,阻碍了定义的
动画使用。首先,我们需要加载nganimate模块为根,我们应用模块。
Angular.module('coursesapp,{ 'nganimate});
所有要
处理的Javascript动画事件都保持不变:
教学事件集
吴的观点
吴:
NG开关
如果
输入 离开
NG重复输入
离开
移动
NG
显示 天然气藏
NG类添加
删除 以上是前一篇文章一样,但没有参照相应的CSS类,因为我们不需要使用它们来定义Javascript动画。所有这些活动都只有在应用模块已经加载的nganimate模块产生的。现在让我们来看看如何把这些指令移动。
角动画的自定义语法
下面是自定义javascript动画的基本框架:
Angular.module('coursesapp)。动画('。
名字动画
功能(){(){
返回{
事件:功能(元素,完成){
动画的逻辑
完成();
}
};
});
这是一些关键点要记住当写Javascript动画在AngularJS:
动画的名称以一个点开始。
所有动画行为都接受两个
参数:
在当前的DOM元素,
运行动画的对象是一个jqlite加载jQuery对象加载之前的AngularJS,还是一个jQuery对象。
动画结束时的回调
函数。与指令相对应的动作动作被挂起直到回调函数被调用。
我们有一些Javascript库,如jQuery,GreenSock,动物,和其他几个库,使动画容易。保持它的简洁,我用jQuery
创建本文动画。为了
学习一些其它的库,您可以访问相应的
网站。
让视图上移
动画用在吴观指导运行时切换的AngularJS应用角度。
以下是当视图出现时动画的视觉效果:
courseappanimations.animation('。查看幻灯片中,函数(){(){
返回{
输入:函数(元素,完成){
element.css({
不透明性:0.5,
位置:相对
上图:10px
左:20px
})
动画({
顶部:0,
左:0,
不透明度:1
},1000,完成);
}
};
});
上述创建幻灯片进入效应当视图进入
屏幕,做的
方法作为一个回调函数,这是表明动画结束,现在AngularJS框架可以继续下一步的行动。
注意,动画的方法()方法调用。我们不将这些元素进入一个jQuery对象,因为jQuery之前已经加载加载AngularJS。
现在我们需要将这个动画效果应用到NG视图指令中,虽然这个动画是用Javascript定义的,但是我们使用类标记将其应用到
目标指令中。
NG重复动画
在你可以选择使用的指令中,NG重复是一个非常重要的指令。有两个基本的
操作指令用于过滤和
排序。根据操作的
执行,添加、移动或删除相应的指令。
下面的演示使用一些基本的动画,当你改变时,你可以看到相应的动画效果。
courseappanimations.animation('。重复动画功能(){(){
返回{
输入:函数(元素,完成){
console.log(进入…);
VaR的宽度= element.width();
element.css({
位置:'relative,
左:- 10,
不透明度:0
});
element.animate({
左:0,
不透明度:1
},完成了);
},
左:函数(元素,完成){
element.css({
位置:'relative,
左:0,
不透明度:1
});
element.animate({
左:- 10,
不透明度:0
},完成了);
},
移动:函数(元素,完成){
element.css({
左:2px
不透明度:0.5
});
element.animate({
左:0px
不透明度:1
},完成了);
}
};
});
NG隐藏动画
NG指令用于添加或删除目标元素的NG隐藏样式类。为了使用动画,我们
经常需要添加或删除CSS样式。类名被传递给动画处理类来实现这个效果。这允许我们
检查这个类并
正确地
修改代码。
下面是一个实现动画元素的示例代码,用NG隐藏指令淡入效果:
courseappanimations.animation('。隐藏动画功能(){(){
返回{
BeforeAddClass:功能(元,类名,完成){
如果(ClassName = 'ng-hide){
element.animate({
不透明度:0
},500,完成);
{人}
完成();
}
},
RemoveClass:功能(元,类名,完成){
如果(ClassName = 'ng-hide){
Element.css ('opacity', 0);
element.animate({
不透明度:1
},500,完成);
{人}
完成();
}
}
};
});
让自定义指令移动
为了使自定义指令的动画效果,我们需要使用$动画
服务。虽然为动画服务的AngularJS
核心框架的一部分,你需要加载nganimate使服务中扮演最重要的角色。
使用上一篇文章中的同一个示例,我们将显示课程的页面列表。我们创建一个指令来显示格子中课程的细节,当单击视图统计时,点阵的内容会发生变化。
当
转换动画开始时,我们将添加一个CSS类标记,最后删除类标签:
app.directive('coursedetails功能($动画){
返回{
范围:真实,
TemplateUrl:'coursedetails HTML,
链接:功能(范围、元素、
属性){
scope.viewdetails =真;
Elem.find(按钮)。Bind(听到咔哒声,函数(){(){
animate.addclass美元(元,开关
Elem.removeClass(开关);
scope.viewdetails =!scope.viewdetails;
范围:$应用();
});
});
}
};
});
你可以看到,我们在动画结束时执行此操作。在
浏览器的
开发者工具,当我们看指令元素,
发现开关有源交换两类标签添加正在加快,然后删除。我们可以通过定义一个CSS风格转换或自定义的Javascript动画看动画的效果。下面是一个简单的CSS变换风格,可用于上述指示,我们已删除特定前缀的简单:
{。det-anim.switching
转换:全1线性;
职位:相对;
不透明性:0.5;
左:- 20px;
}
或者,这里有一个动画jQuery,可以用于同一个指令:
courseappanimations.animation('。JS动画功能(){(){
返回{
BeforeAddClass:功能(元,类名,完成){
如果(ClassName = 'switching){
element.animate({
不透明度:0
},1000,函数(){()
element.css({
不透明度:1
});
完成();
});
}
{其他
完成();
}
}
}
});
在这些动画中,如果它可以应用于内置指令,它也可以应用于定制指令:
课程细节
class=挪威动物
标题{。
您可以在示例页面上看到上面所有动画的效果。
结论
动画,当使用正常使用,会带来愤怒的应用。我们可以看到,AngularJS提供各种对CSS和Javascript动画
支持。你可以选择其中之一,根据球队的
情况。
然而,使用过多的动画会使
应用程序变慢,而对于
用户来说,这将使应用程序看起来不人道。因此,有必要仔细使用这个工具并
优化它。