Jaa


Animating Multiple Controls on an Event using Microsoft Ajax AnimationExtender Controls

We can assocaite multiple controls on a single event on a control firing  by using the "AnimationTarget" attribute of the Animation class.

lets take the example of a strip of thumbnails which should move upon click on the first thumbnail.

See Demo here

 

We have four thumbnails , arranged ina  row , see screenshot below.

We shall use Four Image Controls and position them using Css Positioning Styles.

 <!-- The thumbnails that move -->
            <asp:Image runat="server" 
                Style="position: absolute; top: 100px; left: 100px" 
                ImageUrl="~/thumbNails/___Fragile_heart____by_Liek.jpg"
                ID="imgThumbNail1" CssClass="imgThumbNail" />
            <asp:Image runat="server" 
                Style="position: absolute; top: 100px; left: 210px" 
                ImageUrl="~/thumbNails/001_by_Frnak.jpg"
                ID="imgThumbNail2" CssClass="imgThumbNail" />
            <asp:Image runat="server" 
                Style="position: absolute; top: 100px; left: 320px" 
                ImageUrl="~/thumbNails/AshXP_Design_1.jpg"
                ID="imgThumbNail3" CssClass="imgThumbNail" />
            <asp:Image runat="server" 
                Style="position: absolute; top: 100px; left: 430px" 
                ImageUrl="~/thumbNails/Devotion_by_h16.jpg"
                ID="imgThumbNail4" CssClass="imgThumbNail" />
 To associate an animation with a control , we need to use the AnimationExtender which is part of the AjaxControlToolKit.
 <!-- The Animation Extender Control -->
 <cc1:AnimationExtender ID="AnimationExtender1" runat="server" TargetControlID="imgThumbNail1">
 We add Animations to this control .
 <Animations>
 We Will move the thumbnails on Clicking on the asp:Image Control .
 <OnClick>
 The Animations will move in a sequence.
 <Sequence>
 The animations would be 
 1) The Image Resizes to a slightly bigger size 
 <Resize height= "130" width="120" unit="px" duration ="0.05" AnimationTarget ="imgThumbNail4"></Resize>
 2) It Goes back to its original size.
 <Resize height= "110" width="100" unit="px" duration ="0.05" AnimationTarget ="imgThumbNail4"></Resize>
 3) It shifts by its horizontal and vertical positions relatively.
 <Move vertical="0" horizontal="50"  unit="px" relative ="true" duration="0.2" AnimationTarget="imgThumbNail4"></Move>
 As you can very clearly see , we can animate controls that were not associated with an animation extender control by using the 
 "AnimationTarget" Property of the animations
 This would repeat for all the 4 controls , the complete tag would look this .
  <cc1:AnimationExtender ID="AnimationExtender1" runat="server" TargetControlID="imgThumbNail1">
          <Animations>
              <OnClick>
                 <Sequence>
                     <Resize height= "130" width="120" unit="px" duration ="0.05" AnimationTarget ="imgThumbNail4"></Resize>
                     <Resize height= "110" width="100" unit="px" duration ="0.05" AnimationTarget ="imgThumbNail4"></Resize>
                     <Move AnimationTarget="imgThumbNail4" vertical="0" horizontal="50"  unit="px" relative ="true" duration="0.2"></Move>
                     <Resize height= "130" width="120" unit="px" duration ="0.05" AnimationTarget ="imgThumbNail3"></Resize>
                     <Resize height= "110" width="100" unit="px" duration ="0.05" AnimationTarget ="imgThumbNail3"></Resize>
                     <Move AnimationTarget="imgThumbNail3" vertical="0" horizontal="50"  unit="px" relative ="true" duration="0.2"></Move>
                     <Resize height= "130" width="120" unit="px" duration ="0.05" AnimationTarget ="imgThumbNail2"></Resize>
                     <Resize height= "110" width="100" unit="px" duration ="0.05" AnimationTarget ="imgThumbNail2"></Resize>
                     <Move AnimationTarget="imgThumbNail2" vertical="0" horizontal="50"  unit="px" relative ="true" duration="0.2"></Move>
                     <Resize height= "130" width="120" unit="px" duration ="0.05" AnimationTarget ="imgThumbNail1"></Resize>
                     <Resize height= "110" width="100" unit="px" duration ="0.05" AnimationTarget ="imgThumbNail1"></Resize>
                     <Move AnimationTarget="imgThumbNail1" vertical="0" horizontal="50"  unit="px" relative ="true" duration="0.2"></Move>
                 </Sequence>
              </OnClick>
           </Animations>
</cc1:AnimationExtender>
 Clicking on the First Thumbnail , we can animate the other controls which do not have animation extenders associated with them.

Comments

  • Anonymous
    February 03, 2007
    You've been kicked (a good thing) - Trackback from DotNetKicks.com