
パターンとライブラリで作るAjaxおいしいレシピ(4)
Ajaxの弱点を補うscript.aculo.usの楽しいエフェクト
アークウェブ株式会社
志田 裕樹
2008/1/7
パラメータの変化スピードを変える、Transitionの使用例
■ サンプル【6】Y方向の進行スピードを変えてみる
次のサンプルは、X方向は一定のスピードで移動していますが、Y方向は、だんだん早くなり、目的地に近づくにつれてだんだん遅くなるように、進行スピードを変化させたものです。
| サンプル【6】(拡大表示はこちら、※注意:Operaブラウザでは、一部表示が異なる部分があります) |
ソースコードは次のようになります。
deleteItem: function(id) { |
- - PR -
このように、「option」の「transition」を設定をすることで、パラメータの変化スピードを変えることが可能になります。
■ Transitionでパラメータの変化スピードに変化を
「options」の「transition」を設定することで、パラメータの変化スピードに変化を与えることが可能です。Transitionには、次の種類があります。
- Effect.Transitions.sinoidal (デフォルト)
- Effect.Transitions.linear
- Effect.Transitions.reverse
- Effect.Transitions.wobble
- Effect.Transitions.flicker
Transitionを変更するとどのような効果になるか、いろいろ試してみると面白いと思います。Effect.Transitions.flickerなどは、Effect.ScaleやEffect.Highlightなどに使用するのも効果的です。
自作したTransitionの適用例
■ サンプル【7】商品画像をバウンドさせてみる
次のサンプルは、Y方向のTransitionを、新しく用意することで、縦方向でバウンドができるようにしたものです。
| サンプル【7】(拡大表示はこちら、※注意:Operaブラウザでは、一部表示が異なる部分があります) |
ソースコードは次のようになります。
Effect.Transitions.easeOutBounce = function(pos) { |
■ Transitionは新しく追加が可能
script.aculo.usにデフォルトで用意されているTransitionは種類が多くありませんが、「サンプル【7】」のように簡単に追加ができます。
Transitionに渡る引数「pos」は、エフェクト開始から終了までの合計時間(totaltime)に対する経過時間(time)の割合、つまりtime/totaltimeです。戻り値は、初期値から目的値までの差分に対する現在値の割合を0〜1の範囲で返します。
今回は、secondlifeさん(舘野さん)が作成されたJSTweenerのeaseOutBounceの数式を変換して導入しました。JSTweenerは、JavaScriptによるモーショントゥイーン用ライブラリです。
独自エフェクトの作成例
■ サンプル【8】合計金額の変化を連続的に見せる
最後のサンプルは、合計金額の変化を連続的にしたものです。
| サンプル【8】(拡大表示はこちら、※注意:Operaブラウザでは、一部表示が異なる部分があります) |
ソースコードは次のようになります。
Effect.CartTotalUpdater = Class.create(Effect.Base, { |
■ フレームワークを理解すれば独自エフェクトの作成も可能
このサンプルでは、Effect.Baseを継承して、「Effect.CartTotalUpdater」という新しいエフェクトを作成しています。今回は、initialize()とupdate()という2つのメソッドをオーバーライドしました。
Effect.Baseのstart();を実行すると、エフェクトが開始されます。Effect.Baseのupdate()は、エフェクト実行時に呼び出されます。update()に渡される「position」は、現時点でのパラメータの値になっています。
Effect.Baseの正式なドキュメントは見当たりませんでしたが、script.aculo.usのフレームワークを理解すれば、どうしても既存のエフェクトが要望にマッチしない場合などに、自分でエフェクトを新しく作成をしてしまうことも可能です。
新しいユーザーエクスペリエンスを
以上、8つのサンプルを通して、script.aculo.usの使用方法を解説しました。
Ajaxを活用したシステムでは、画面遷移がないため、画面要素が書き換わっても、ユーザーがそれに気付かない場合があります。エフェクトはユーザーに情報の更新を気付かせる方法の1つです。
さらにエフェクトをうまく活用し、楽しいギミックを実装できれば、ほかのサイトにはない新しいユーザーエクスペリエンスを利用者に提供することもできるのではないでしょうか。ぜひ、script.aculo.usを使いこなして、楽しいAjaxライフに役立てていただければと思います。
今回使ったソースコードはこちらからダウンロードできます(サンプルのライセンスはGPL 2となります)。
■ @IT関連記事
| 古くて新しいAjaxの真実を見極める 「Webインターフェイスの新しい手法」「画期的なWebアプリケーションの仕組み」であるとして開発者たちの人気を集めるAjaxとは何なのか、その真実を見極めてみよう 「Web
Client & Report」フ ォーラム 2005/8/2 |
||
Ajax うきうき Watch
Ajaxという流行技術の定義を明確にしながら、Ajaxの動向からうきうきするような面白いもの、確実に押さえておきたいものを厳選してお届けしていく
- 第1回 Webアプリのユーザビリティを改善しまくるAjax
- 第2回 Ajax、それはWeb 2.0へと続く道
- 第3回 どんなに無茶をやっても「それもありかな」なAjax
- 第4回 自動車業界のAjaxを活用したキャンペーンを目撃せよ
- 第5回 “どのブラウザでも動くAjax”を共有財産として育てよう
- 第6回 プロプライエタリ2.0から考えるAjaxの公開/非公開部
- 第7回 メモリリークが小さくなったGoogle Maps APIの新版
- 第8回 “CGUI” 消費者が作り出すUIの時代突入
- 第9回 巨大化するAjaxライブラリをシンプルにする新たな流れ
- 第10回 地図のように年代を移動できるMITのAjax歴史年表
- 第11回 JSONがRFCになり、どんどんこなれるAjaxサービス
- 第12回 サーバが通信を開始できるComet活用Webチャット
- 第13回 オンラインゲームで検索精度を上げるGoogleの巧みさ
- 第14回 IE7とFirefox 2への利用者の大移動は起こるか?
- 第15回 グーグル検索エンジンを特定ジャンル専用に、Co-op
- 第16回 帯域やデバイス領域をフル活用させる“モバイルAjax”
- 第17回 新しい技術を模索するYahoo!、Google、MS
- 第18回 Ajaxの高度な使用例、Yahoo! pipes
- 第19回 Apollo参戦でウィジェット開発者の争奪戦が激化
- 第20回 Twitter登場で注目されるRTコミュニケーションツール
- 第21回 過熱するTwitterブームとMicrosoftのマッシュアップ
- 第22回 iPhoneのAjax戦略、そして今日もWeb APIは増加する
- 第23回 Ajax開発者がヒーローになるとき、それはいま!
- 第24回 携帯電話への拡張を進めるGoogleとWeb隠しコマンド
- 第25回 Ajaxで加速!? エンタープライズ2.0とWebOSの普及
- 第26回 「言葉」を超えた説得力を持つAjaxの存在感と広がり
- 第27回 ゲームから読み解く、俺スクリプト時代の知的な挑戦
- 第28回 マッシュアップ元年が終わり、2008年はどうなる?
- 第29回 Twitterやクラウドへも分岐するAjax/Web APIの道
- 第30回 Ajaxはじめて物語、そしてサーバでも動くJavaScript
- 第31回 新ブラウザ戦争はon fireだがJavaScriptはoffのナゾ
- 第32回 Google App EngineはAjaxへのハードルを下げるか?
- 最終回 Pure JavaScriptの動画再生やRPGも好きでした
JavaScriptプログラミング再入門
Ajax全盛のいま、オブジェクト指向ベースのJavaScript知識は不可欠。過去を振り返りつつ、まずは最新開発事情をチェック
- 第1回 JavaScriptの復権
- 第2回 JavaScriptの関数をマスターしよう
- 第3回 JavaScriptにおける変数の宣言とスコープ
- 最終回 JavaScriptでオブジェクト指向プログラミング
| プロフィール:志田 裕樹(しだ ゆうき) 株式会社アークウェブ取締役。Webシステムのシステムエンジニアとして開発に従事している。 Ajax、Ruby on Railsなどを使用したWeb 2.0的システムの開発実績を持つ。 オープンソースのECサイト用CMS、Zen Cartの日本語コミュニティでコミッターとして活動している。 |
| 1-2-3-4 |
| INDEX | ||
| パターンとライブラリで作るAjaxおいしいレシピ(4) Ajaxの弱点を補うscript.aculo.usの楽しいエフェクト |
||
| Page1 今回はscript.aculo.usの一歩進んだテクニック オンライン・サンプルを段階的に進化させて解剖! サンプルのHTMLソースコードを解剖 |
||
| Page2 全サンプル共通のコントローラーのソースコード エフェクトのないサンプルのビュー コアエフェクトの使用例 エフェクトのコールバックの使用例 |
||
| Page3 コンビネーションエフェクトの使用例 エフェクトを順番に実行させる、Queueの使用例 複数のエフェクトを同時実行する、Parallelの使用例 |
||
| Page4 パラメータの変化スピードを変える、Transitionの使用例 自作したTransitionの適用例 独自エフェクトの作成例 新しいユーザーエクスペリエンスを |
||
パターンとライブラリで作るAjaxおいしいレシピ バックナンバー 連載インデックスへ»
- 第1回 jQueryを使ってTwitterをおいしくマッシュアップ
- 第2回 prototype.jsでYouTubeをインクリメンタルサーチ
- 第3回 Ext JSとprototype.jsで作るリッチなUI
- 第4回 Ajaxの弱点を補うscript.aculo.usの楽しいエフェクト
- 第5回 jQuery UIで実現! Ajaxで複数選択ドラッグ&ドロップ
- 第6回 Aptana Jaxerで解決するAjaxのSEO対策とは?
| リッチクライアント&帳票 全記事一覧へ |
TechTargetジャパン
- 次のモバイルアプリはどのフレームワークで作る? (2012/5/24)
スマホアプリの開発を容易にするJavaScriptのフレームワークが続々と増えている。それぞれの良さや仕組み、何がどこまでできるのかを徹底解剖する - 「LESS&専用エディター」でCSSをシンプルに書こう (2012/5/23)
「LESS」はCSS初心者に向けた、シンプルなライブラリだ。「LESS」で、変数などのプログラミングの基礎的な考え方もCSSで学ぼう - 学校が世界一のデジタル環境になったら (2012/5/18)
授業はアーカイブに蓄積され、家からも見られる。家族が授業テーマのアイデアを出す。そんな姿が実現されるかもしれない - 1000万ドル調達も夢じゃないクラウドファウンディング (2012/5/15)
クラウドファンディングは、寄付型でも投資型でもない「購入型」が主流。商品を“開発する前に販売”して開発費用を集める逆転のシステムだ
|
|

