Animation Demonstration
The animation support in the Toolkit is more than just a control. It's a pluggable, extensible framework for easily adding animation effects to your web pages.
The sample below demonstrates a composite animation consisting of four primary animation actions, done in parallel:
- Move (to move the panel to its final location)
- Resize (to change the size of the panel)
- Fade (to fade the text in/out)
- Color (the flyout changes from gray to white and the text pulses red)
By composing basic animations (there are many to choose from!) you can create very sophisticated effects, or use them independently from client code, server-side code, or XML markup.
Once you get the general idea of the Animation's markup, you'll want to play a bit. All of the animations are built out of simple, reusable
building blocks that you can composed together. Before long you'll be creating dazzling visuals. By grouping steps together
and specifying them to be run either in sequence or in parallel, you'll achieve almost anything you can imagine, without writing a single line of code!
The XML defining the animations is very easy to learn and write, such as this example's show and close markup.
<ajaxToolkit:AnimationExtender id="OpenAnimation" runat="server" TargetControlID="btnInfo">
<Animations>
<OnLoad><OpacityAction AnimationTarget="info" Opacity="0" /></OnLoad>
<OnClick>
<Sequence>
<!-- Disable the button -->
<EnableAction Enabled="false" />
<!-- Show the flyout -->
<Parallel AnimationTarget="flyout" Duration=".3" Fps="25">
<Move Horizontal="150" Vertical="-50" />
<Resize Height="260" Width="260" />
<Color AnimationTarget="flyout" StartValue="#AAAAAA" EndValue="#FFFFFF"
Property="style" PropertyKey="backgroundColor" />
</Parallel>
<!-- Fade in the text -->
<FadeIn AnimationTarget="info" Duration=".2"/>
<!-- Cycle the text and border color to red and back -->
<Parallel Duration="1">
<Color AnimationTarget="info" StartValue="#666666" EndValue="#FF0000"
Property="style" PropertyKey="color" />
<Color AnimationTarget="info" StartValue="#666666" EndValue="#FF0000"
Property="style" PropertyKey="borderColor" />
</Parallel>
<Parallel Duration="1">
<Color AnimationTarget="info" StartValue="#FF0000" EndValue="#666666"
Property="style" PropertyKey="color" />
<Color AnimationTarget="info" StartValue="#FF0000" EndValue="#666666"
Property="style" PropertyKey="borderColor" />
<FadeIn AnimationTarget="btnCloseParent"/>
</Parallel>
</Sequence>
</OnClick>
</Animations>
</ajaxToolkit:AnimationExtender>
<ajaxToolkit:AnimationExtender id="CloseAnimation" runat="server" TargetControlID="btnClose">
<Animations>
<OnClick>
<Sequence>
<!-- Scale the flowout down to 5% to make it disappear -->
<Parallel AnimationTarget="info" Duration=".3" Fps="15">
<Scale ScaleFactor="0.05" Center="true" ScaleFont="true" FontUnit="px" />
<FadeOut />
</Parallel>
<!-- Reset the styles on the info box -->
<StyleAction AnimationTarget="info" Attribute="display" Value="none"/>
<StyleAction AnimationTarget="info" Attribute="width" Value="250px"/>
<StyleAction AnimationTarget="info" Attribute="height" Value="250px"/>
<StyleAction AnimationTarget="info" Attribute="fontSize" Value="12px"/>
<!-- Re-enable the button -->
<EnableAction AnimationTarget="ctl00_ContentPlaceHolder1_btnInfo" Enabled="true" />
</Sequence>
</OnClick>
</Animations>
</ajaxToolkit:AnimationExtender>
The AnimationExtender is a simple extender that allows you to utilize the powerful animation
framework with existing pages in an easy, declarative fashion. It plays animations whenever a specific event like
OnLoad, OnClick, OnMouseOver,
or OnMouseOut is raised by the target control.
The animations to be played are declaratively specified using XML. You can read the
Using Animations walkthrough for more details about creating these generic animation
declarations, as well as other ways to use the animation framework. The framework provides a lot of useful animations to handle
movement, resizing, fading, etc. All the animations and their properties are described in the Animation Reference.
The animation behavior can be applied with the following extender (the
italic properties are optional, and the
ellipses represent a generic animation description):
<ajaxToolkit:AnimationExtender ID="ae"
runat="server" TargetControlID="ctrl">
<Animations>
<OnLoad> ... </OnLoad>
<OnClick> ... </OnClick>
<OnMouseOver> ... </OnMouseOver>
<OnMouseOut> ... </OnMouseOut>
<OnHoverOver> ... </OnHoverOver>
<OnHoverOut> ... </OnHoverOut>
</Animations>
</ajaxToolkit:AnimationExtender>
- TargetControlID - ID of the target control whose events are used to animate (this is also the default target of the animations)
- OnLoad - Generic animation played as soon as the page is loaded
- OnClick - Generic animation played when the target control is clicked
- OnMouseOver - Generic animation played when the mouse moves over the target control
- OnMouseOut - Generic animation played when the mouse moves out of the target control
- OnHoverOver - Generic animation similar to OnMouseOver except it will stop the OnHoverOut animation before it plays
- OnHoverOut - Generic animation similar to OnMouseOut except it will stop the OnHoverOver animation before it plays