Выполнение нескольких анимаций одновременно (C#)

Кристиан Венц

Скачать в формате PDF

Элемент управления "Анимация" в наборе средств управления AJAX ASP.NET — это не только элемент управления, но и вся платформа для добавления анимаций в элемент управления. Он позволяет выполнять несколько анимаций параллельно.

Обзор

Элемент управления "Анимация" в наборе средств управления AJAX ASP.NET — это не только элемент управления, но и вся платформа для добавления анимаций в элемент управления. Он позволяет выполнять несколько анимаций параллельно.

Шаги

Во-первых, включите ScriptManager на страницу, а затем загружается библиотека AJAX ASP.NET, что позволяет использовать набор элементов управления.

<asp:ScriptManager ID="asm" runat="server" />

Анимация будет применена к панели текста, которая выглядит следующим образом:

<asp:Panel ID="panelShadow" runat="server" CssClass="panelClass">
 ASP.NET AJAX is a free framework for quickly creating a new generation of more efficient,
 more interactive and highly-personalized Web experiences that work across all the
 most popular browsers.<br />
 ASP.NET AJAX is a free framework for quickly creating a new generation of more efficient,
 more interactive and highly-personalized Web experiences that work across all the
 most popular browsers.<br />
 ASP.NET AJAX is a free framework for quickly creating a new generation of more efficient,
 more interactive and highly-personalized Web experiences that work across all the
 most popular browsers.<br />
</asp:Panel>

В связанном классе CSS для панели определите хороший цвет фона, а также задайте фиксированную ширину для панели:

<style type="text/css">
 .panelClass {background-color: lime; width: 300px;}
</style>

Затем добавьте AnimationExtender на страницу, указав ID и TargetControlID атрибут, а также обязательный runat="server".

<ajaxToolkit:AnimationExtender ID="ae" runat="server" TargetControlID="Panel1">

Внутри узла <Animations> используйте <OnLoad> для запуска анимации после полной загрузки страницы. Как правило, <OnLoad> принимает только одну анимацию. Платформа анимации позволяет объединить несколько анимаций в одну с помощью <Parallel> элемента. Все анимации в пределах <Parallel> выполняются одновременно.

Вот возможная разметка для AnimationExtender контрола, исчезновение и изменение размера панели одновременно:

<ajaxToolkit:AnimationExtender ID="ae" runat="server" TargetControlID="Panel1">
 <Animations>
 <OnLoad>
 <Parallel>
 <FadeOut Duration="1.5" Fps="24" />
 <Resize Width="1000" Height="150" Unit="px" />
 </Parallel>
 </OnLoad>
 </Animations>
</ajaxToolkit:AnimationExtender>

И действительно: при запуске этого скрипта отображается панель, которая затем изменяет свои размеры (больше чем в три раза увеличивается ширина и высота уменьшается вдвое) и одновременно исчезает.

Панель исчезает и изменяет размер (включая его содержимое, благодаря обработчику отрисовки браузера)

Панель исчезает и изменяет размер (включая её содержимое, благодаря движку рендеринга браузера) (Щелкните, чтобы просмотреть изображение полного размера)