SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Ajax対応コントロールでJavaScriptレス アニメーションを実装する

AnimationExtenderコントロール(ASP.NET AJAX Control Toolkit)の利用方法を学習する


  • X ポスト
  • このエントリーをはてなブックマークに追加

コントロールを拡大、縮小する方法とコントロールの利用可能、不可能を設定する方法(サンプル5)

 アニメーションの中には一定の比率による変更ができるScale Animationがあります。また、アニメーションの中にはコントロールの利用可能、不可能の設定を行うEnableActionがあります。

Actionの動作
 ActionはAnimationと動作が異なる部分があります。通常のアニメーションは一定の間隔で動くのに対して、アクションは一瞬の間に単一の動作を実行します。デフォルトの設定ではアクションのDuration設定は0となっています。

サンプル5概要

 ページ上にButtonコントロール2つとCalendarコントロールを配置します。プロパティ設定はButton1のTextプロパティに[拡大]、Button2のTextプロパティに[縮小]と設定してください(図24)。

図24 サンプル5のフォームレイアウト画面
図24 サンプル5のフォームレイアウト画面

 Button1がクリックされた時にCalendarコントロールを倍の大きさに拡大し、Button2がクリックされた時にCalendarコントロールを縮小するコードは、次のようになります。このサンプルではボタンなどのコントロールの2度押しなどを防ぐことが可能なEnableActionも利用しています。[拡大]ボタン、[縮小]ボタンがクリックされた際にそれぞれのアニメーションが動作している間は利用不可能にし、アニメーションが終了した段階で利用可能な設定に戻しています。

default.aspx(一部)
<ajaxToolkit:AnimationExtender ID="AnimationExtender1" 
        runat="server" TargetControlID="Button1">
    <Animations>
        <OnClick>
            <Sequence>
                <EnableAction Enabled="false" />
                <Scale AnimationTarget="Calendar1" scaleFactor="2." 
                    Unit="px" ScaleFont="true" FontUnit="px" />
                <EnableAction Enabled="true" />
            </Sequence>
        </OnClick>
    </Animations>
</ajaxToolkit:AnimationExtender>
<ajaxToolkit:AnimationExtender ID="AnimationExtender2" 
        runat="server" TargetControlID="Button2">
    <Animations>
        <OnClick>
            <Sequence>
                <EnableAction Enabled="false" />
                <Scale AnimationTarget="Calendar1" scaleFactor=".5" 
                    Unit="px" ScaleFont="true" FontUnit="px" />
                <EnableAction Enabled="true" />
            </Sequence>
        </OnClick>
    </Animations>
</ajaxToolkit:AnimationExtender>

 実行時の画面は図25のようになります。[拡大]ボタンをクリックしている時の画面が図26で、拡大処理終了後の画面が図27のようになっています。また、[縮小]ボタンをクリックしている時の画面が図28のようになり、縮小処理終了後の画面が図29のようになります。

図25 サンプル5の実行時の画面
図25 サンプル5の実行時の画面
図26 サンプル5の拡大ボタンクリック時の画面
図26 サンプル5の拡大ボタンクリック時の画面
図27 サンプル5の拡大処理終了後の画面
図27 サンプル5の拡大処理終了後の画面
図28 サンプル5の縮小ボタンクリック時の画面
図28 サンプル5の縮小ボタンクリック時の画面
図29 サンプル5の縮小処理終了後の画面
図29 サンプル5の縮小処理終了後の画面

 Scale Animationを利用して拡大縮小を行うには、scaleFactorプロパティの設定を行うことで可能になります。0.5で半分のサイズに、1で標準サイズ、2.0で倍の大きさに拡大縮小が可能になります。また、ScaleFontがTrueに設定されている場合は文字も拡大縮小されます。Unitプロパティは対象のターゲットの比率が変更される際の単位です。デフォルトの設定ではpxです。FontUnitはScaleFontがTrueの時に文字の拡大縮小を可能にします。デフォルトの設定ではptです。Unitプロパティ、FontUnitプロパティそれぞれのデフォルトの単位が違う点に注意してください。

 EnableActionのEnabledプロパティはtrueに設定すると利用可能に、Enabledプロパティをfalseに設定すると利用不可能になります。日々の中で使うパターンとして考えられるのは、ボタンなどがクリックされた際に2度押しをさせないために、クリックした段階で対象のコントロールを利用不可能にすることなどが挙げられます。

次のページ
コントロールを隠す方法とスタイルを変更する方法(サンプル6)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト ナオキ(ナオキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/883 2007/04/13 13:08

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング