JavaScriptは、RIA(リッチインターネットアプリケーション)としてのWebアプリでは勿論、通常のWebページにおいても、 データの整形/表示項目制御/Ajaxによる非同期通信など、各種機能を実装する為に用いられます。 またそれと同時に、 HTML+CSSだけでは実現出来ない視覚的効果を付加する目的でも使われています。
適度な視覚効果(ビジュアルエフェクト)の利用は、機能説明やユーザーの操作を反映し強調するような補助情報として活用出来、 また、Webサイトをユニークなものとして演出し他のサイトとの差別化を図る事の出来る非常に効果的な要素でもあります。
このようなエフェクトでは、CSSのstyleを毎秒数十フレームの頻度で更新するようなアニメーション効果も非常にポピュラーなものと言えます (このページ上部のナビゲーションメニューにもそのような効果が設定されています)。 が、各フレームでの位置/サイズや色情報を決定する為の演算と、そのstyleを実際のエレメントに適用しレンダリングする処理は、 決して軽いとは言えません。
特に所謂UMPCやiPhoneなどのJavaScriptをサポートする携帯端末が増加している状況では、 アニメーションエフェクトによる負荷は無視出来ないものとなります。
またアニメーション効果の多くはコンマ数秒で終了するものが多いですが、 毎回コンマ数秒の効果を見せられるのを好まない、 あるいはエフェクト自体を嫌うユーザーも居るかと思われます。 そのようなユーザーは、アニメーション効果を無効にする為に、JavaScript自体をブラウザでoffにしてしまい、 本来メインであるはずの機能面でのJavaScriptが利用されなくなる事も考えられます。
そこでWebJADEでは、多くの環境や多様なユーザーの嗜好にも対応出来るように、 エフェクトの有無をユーザー側で選択出来るような設定が可能となっております。
これにより、JavaScriptを有効にしその機能を利用しつつも、 エフェクトだけは制限したいという、 マシンパワーの問題でエフェクトが不要、あるいは個人的な趣味に合わないと考えるユーザーに対し提供可能な選択肢として活用出来ます。
ここではWebJADEで使われる全てのエフェクトの制御を一括して行います。
このEffect On/Offをクリックする事で、このページの全てのエフェクトを制御します。 WebJADEの共通設定を利用した全てのエフェクトが影響を受けますので、下記のサンプルは勿論、 ページ上部のナビゲーションメニューでのエフェクトにも反映されます。
これはWebJADE共通のナビゲーションメニューの右端に設置されてるボタンと同様の機能となっています。
これはToggleをクリックする事で、右の黒い四角形のサイズと背景色を変更するようなエフェクトになります。 このように四角形の幅→高さ→背景色というように段階に分かれたエフェクトであっても、 WebJADEでは、エフェクト無効時にもエフェクト有効時と同じエフェクト完了状態を再現する事が可能です。
このサンプルでは、エフェクトをループさせています。
エフェクト制御は、各エフェクト開始時にその設定が反映されます。 よってエフェクト切替では現在実行中のエフェクトには影響しませんので、effect offにした場合でも現在のエフェクトは終了まで行い、ループ設定の場合はそのまま継続します。
全てのエフェクトを一律に制限するのではなく、特定のエフェクトだけに限って制限する事も可能になります。 個別エフェクト指定の場合には、前もって個々のエフェクトに識別IDを割り振っておく必要があります。
このLoop On/Offは上記Loopエフェクトだけに特化した制御となります。 LoopをOffにした場合には、四角形変形やナビゲーションメニューなど他のエフェクトは通常通り行われますが、 Loopエフェクトだけはエフェクト遷移が行われません。 また、LoopがOnになっている場合でも、全体のEffectがOffならば当然Loopのエフェクトも適用されません。
WebJADEのエフェクト制御では、その設定をCookieに保存出来ますので、 ユーザーが毎回設定を変更する事無く、今後のアクセス時においても同じ制御設定でのWebサイト閲覧が可能になります。
このCookieによる設定保存と、上記の個別エフェクト制御を合わせて利用する事で、 多数のエフェクトが実装されているWebサイトでの、エフェクトの個別設定画面なども設置する事が出来ます。