代码实现一些动画效果在AngularJS应用

代码实现一些动画效果在AngularJS应用
角,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动画支持。你可以选择其中之一,根据球队的情况

然而,使用过多的动画会使应用程序变慢,而对于用户来说,这将使应用程序看起来不人道。因此,有必要仔细使用这个工具并优化它。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部