ASP.Net AJAX 的动画是采用其强大的 JavaScript 类库进行实现的,因而,你可以用 JavaScript 调用动画类库的 play 方法来实现动画效果。
在用代码实现动画效果的开发方式中,调用 play 的方法是一个很好的办法,但是如果需要写比较复杂的动画代码会引起时间的开销和错误的发生(按照软件工程多写多错的法则)。
因而,ASP.Net AJAX 同样提供了方便的 XML 表示一个动画的使用,而避免了大量的、复杂的和非调试性的 JavaScript 编写。
ASP.Net AJAX 控件,类似 AnimationExtender ,可以使得各种 Html 元素的事件具有动画功能,例如 OnClick 。
在使用中,我们可以采用范化的 XML 动画声明,在这个申明中,我们可以指定产生的动画效果。例如:
当我们需要使得一个 ID 为 MyPanel 的 ASP.Net Panel 控件在点击的时候具有动画效果,我们可以采用如下的动画申明:
<ajaxToolkit:AnimationExtender id="MyExtender"
runat="server" TargetControlID="MyPanel">
<Animations>
<OnClick>
<FadeOut Duration=".5" Fps="20" />
</OnClick>
</Animations>
</ajaxToolkit:AnimationExtender>
在上面的 XML 描述中,AnimationExtender 采用 TargetControlID 指定所需要采用动画的控件。
Animations 是一个申明范化的动画信息的申明,其中 OnClick 指定了当目标控件被点击的时候将调用动画显示效果。
最后 FadeOut 和 Duration 都是 ASP.Net AJAX 动画效果中的一个申明方式。下面是这个示例的演示,你可以点击这个控件感受一下它的效果。
点击这里感受渐变效果
重置
AnimationExtender 可以协作的客户端事件包括 OnLoad 、OnClick 、OnMouseOver、OnMouseOut、OnHoverOver 和 OnHoverOut。
另外的 ASP.Net AJAX 控件还具有其它一些可应用动画的事件,
例如:UpdatePanelAnimationExtender 具有事件 OnUpdating 和 OnUpdated 可显示动画效果。
请注意每一个事件只能包括一个用 XML 表示的动画描述,但是你可以用 Sequence 和 Parallel 来控制顺序或者并行的动画动作,我们将在下面继续描述它的信息。
下面的示例展示一个采用 OnHoverOver 和 OnHoverOut 的渐变效果的 ASP.Net Panel 控件的动画效果,当你的鼠标移入或者移出这个 Panel 控件的时候,我们应用了 FadeIn 和 FadeOut 动画,并且定义了它的 MinimumOpacity 和 MaximumOpacity 属性。
移动鼠标感受渐变效果
每一个动画都和一个 JavaScript 类进行通信,例如, FadeIn 和 JavaScript 类 AjaxControlToolkit.Animation.FadeInAnimation 进行通信。
在范化的 XML 动画申明中,它将应用其动画的名字和对应的 JavaScript 类进行通信。例如我们可以改变一个 Html 元素的的尺寸采用 Resize 标签,并指定其 Width、Height 和 Unit 属性。
我们可以作如下的申明:
<Resize Width="200" Height="300" Unit="px" />
请注意,范化的 XML 动画申明是大小写敏感的,另外,由于 ASP.Net AJAX 动画效果的架构模式,每一个动画元素都具有 Duration 和 Fps 属性,分别用于表示动画的持续时间(用秒表示)和每秒钟内显示的帧数。
你可以在动画引用中找到所有的 ASP.Net AJAX 动画效果和它们的属性描述。