Home > javascript > はてなホットエントリーをTween.jsを使ってそれっぽく表示

はてなホットエントリーをTween.jsを使ってそれっぽく表示

昨日Google AJAX Feed APIに登録したので、早速使ってみました。
サンプルはこちら

APIドキュメントのサンプルを少し変更しただけで、javascriptだけでデータを取得し表示することができました。

ただ、上のサンプルだけでは味気ないのでTween.jsを利用したサンプルも作ってみました。

Tween.jsとはactionscriptのTweenクラスに似せた、インターフェースでDOM操作にアニメーションを着けられるjavascriptライブラリーです。Tweenの動作サンプル

 

はてなホットエントリーをTweenで表示

ソースはこちら

google.load("feeds", "1");

function initialize() {
   var feed = new google.feeds.Feed("http://b.hatena.ne.jp/hotentry.rss");
   feed.setNumEntries(30);

   function addhatenaEntry(ddiv, url) {
      return function(){
         ddiv.innerHTML += '&amp;amp;amp;amp;nbsp;<a href=http://b.hatena.ne.jp/entry/'+ url + ' target="_blank"><img src=http
://b.hatena.ne.jp/entry/image/small/' + url +' border="0"></a>';
      };
   }

   feed.load(function(result) {
      if (!result.error) {
         var objBody = document.getElementsByTagName("body").item(0);
         var yseq1 =  new Sequence();

         for (var i = 0; i < result.feed.entries.length; i++) {
            var entry = result.feed.entries[i];
            var ele = document.createElement('div');
            ele.id = 'h'+(i+1);
            ele.style.backgroundColor = (i+1)%2 ? "d8bfd8" : "ffffff";
            objBody.appendChild(ele);
            var t = new TextTween(ele,
                           'innerHTML',
                           '<a href='+ entry.link +'>'+ entry.title +'</a>&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;<font color="#353535"><small>' + entry.publishedDate +'</small></font>',
                           Tween.strongEaseOut,
                           2
                           );
            t.onMotionFinished = addhatenaEntry(ele, entry.link);
            yseq1.addChild(t);
         }
      }

      yseq1.start();

   });
}

google.setOnLoadCallback(initialize);

Tween.jsはSequence.jsが提供している、Sequence()を利用することによってアニメーションをキューに追加して実行することができます。
このソースでは、for文のエントリ毎にtextのtweenを設定していき、全要素をキューにため操作が終わった後に実行しています。

エントリ数を表示する部分はonMotionFinished(アニメーション終了後に実行される)
として関数をセットしました。(TextTweenにimgタグも書き出そうとすると、サイズの関係かアニメーションがちらつくためNGにした)

次回は別のAPIで何か作ろうと思います。

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://swimbird.com/blog/archives/2009/04/15/google-ajax-feed-api-%e3%81%a7%e3%81%af%e3%81%a6%e3%81%aa%e3%83%9b%e3%83%83%e3%83%88%e3%82%a8%e3%83%b3%e3%83%88%e3%83%aa%e3%83%bc%e3%82%92.html/trackback
Listed below are links to weblogs that reference
はてなホットエントリーをTween.jsを使ってそれっぽく表示 from swimbird's blog
pingback from swimbird’s blog - flickr api jsonとTween.js,YUI libraryで画像検索 09-04-26 (日) 15:16

[...] 前エントリーに引き続きjavascriptのみでflickr apiを利用して画像検索を作ってみました。   前エントリーで紹介したGoogle AJAX Feed APIを利用してgoogle経由でflickrのデータを引っ張って来ようと思っていたのですが、 flickrでは元々json形式でのAPIを提供していたので素直にそちらを利用させてもらいました。   flickr APIのjsonフォーマットでは、画像パスの生成は取得したデータの組み合わせで作らなければならないので注意が必要です。 javascriptでのデータの取得はこちらを参考にしました。(そのまんま流用しましたが^^;)   データの出力には前エントリー同様にTween.jsと今回新たにYUI libraryを利用しました。 YUI libraryとは米のYahooが提供しているjavascriptライブラリーで名前の通りUIに特化していて、様々な場面を想定したライブラリーを提供してくれています。 今回は表示した画像のドラッグアンドドロップがしたかったので、YUI library : Drag & Dropを利用しました。 [...]

Home > javascript > はてなホットエントリーをTween.jsを使ってそれっぽく表示

Search
Feeds
 

SiteMap - Return to page top