SmallStyle


2011-06-09

_ HTML5 の Canvas を使ってアニメーション GIF の代わりをさせてみる

Canvasタグを使ったローディングイメージ

picasa プラグインの画像読み込み部分で,読み込み中にローディングイメージでも表示させようかと思ってみたものの,画像ファイルを別途用意するのが面倒な感じがしたので,別のアプローチということで,HTML5 の Canvas と JavaScript を使って実現できるか試してみた.

<!DOCTYPE html>
<html>
<head>
<title>HTML5 Canvas Sample</title>
</head>                   
<body>
<script>
<!--
var CanvasLoadingImage = function( rgb ) {
  this.initialize( rgb );
};

CanvasLoadingImage.prototype = {
  initialize: function( rgb ) {
    var canvas = document.createElement( "canvas" );
    canvas.innerHTML = "loading...";
    canvas.width = 200;
    canvas.height = 32;
    var ctx = canvas.getContext( "2d" );
    this.canvas = canvas;
    this.ctx = ctx;
    this.rgb = rgb || "0, 0, 0";
  },
  
  draw: function( idx ) {
    var ctx = this.ctx;
    ctx.clearRect( 0, 0, 200, 32 );
    for( i = 0; i < 10; i++ ) {
      ctx.fillStyle = i > idx ? "rgba(" + this.rgb + ", 0.25)" : "rgb(" + this.rgb + ")";
      ctx.fillRect( i * 20, 0, 16, 32 );
    }
    return idx < 10 ? idx + 1 : -1;
  },
  
  start: function() {
    var self = this;
    var idx = -1;
    this.timer = window.setInterval( function() {
      idx = self.draw( idx );
    }, 100 );
  },
  
  stop: function() {
    window.clearInterval( this.timer );
  }
}

var loading = new CanvasLoadingImage( "255, 220, 0" );
document.body.appendChild( loading.canvas );
loading.start();

//-->
</script>
</body>
</html>

上記のソースは gist でも参照できます.

Chrome や Safari,Firefox で動作してるのが確認しています.

今後,tDiary のプラグインでも Ajax を利用する場面が増えてくるだろうから,処理のかかるような場合は,各プラグインがそれぞれ読み込み画像を用意したりするより,こういう手段もありなんじゃないかな.もしくはそれっぽい JQuery のプラグインを探してくるか.picasa プラグインにはとりあえず上記のコードをベースに組み込んでみる予定.

本日のツッコミ(全3件) [ツッコミを入れる]

_ ただただし [00default.jsに入れておいて共有するべきかも知れません。その場合は(ポータビリティのことを考えて)gifア..]

_ hb [確かに,こうした汎用的なものは共有したほうがいいですね. アニメーションをgifファイルとした場合は,共有のファイ..]

_ ただただし [なるほど色かぁ。でもまぁ、白と黒のアニメにすれば、どんな背景でも見られるんじゃないかな、と。]


2011-06-06

_ Yahoo!のウェブ検索 API のプラグインを作ってお試し中

サイト内検索を Google カスタム検索にしたものを置き換えてしばらく使っていて,検索結果そのものには不満はないけど,表示が iframe というのがどうも気に入らない.Autopagerize も効かないので,あまり使い勝手もよくない感じがするので,Yahoo!デベロッパーネットワークのウェブ検索 API を試しています.

Yahoo! のウェブ検索 API は検索結果を XML で返してくれるので,BOSS や Bing の検索プラグインと同じような形で表示できます.いまいちインデックスされるタイミングがよくわかんないので,しばらくこっちを試してみることに.

ウェブ検索 API は通常のウェブ検索とアップグレード版検索が用意されていて,通常のウェブ検索は,同時アクセスが可能なユーザー数の制限や 24 時間中 1000 件までのリクエストを上限とされます.アップグレード版にするとこの制限が 24 時間中,50000 件のリクエストが上限となります.Yahoo!プレミアム会員,Yahoo! BB会員,Yahoo!ウォレットのいずれかを利用している人は,アップグレード版が利用できるということなので,ここではアップグレード版で運用しています.

さて,この日記がどのくらいのタイミングでインデックスされるかな.そんなに悪くなければこのまま利用することにしよう.

つづき: 2011-06-13

2011-06-04

_ Googleカスタム検索プラグインをちょっと更新

検索結果の表示についてもうちょっと調整できるようにし,広告の表示位置,検索結果を表示する iframe の幅と高さを設定できるようにしました.

検索結果を上下にした場合は,検索条件によっては上に 1 つだけ広告とか,まったく広告がでないこともあります.多い場合は上下それぞれに 4,5 件ほど表示されるので,その点を考慮して検索結果の高さは設定してください.指定しない場合はデフォルト値の 1300 が適用されるので,多分問題なく表示されると思います.


about me

いろいろと興味を持ったことを書いてます.ちょっとしたことは hb(@smallstyle) on Twitter で書いてます.

Archive

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|12|