2006年06月18日 12:32
画像を拡大表示する方法
先のエントリで2枚のサムネール画像をクリックすると拡大画像を表示するしくみを用意した。実は極々簡単なJavaScriptで実現している。coolなウェブサイトではもっと凝ったしくみを用意しているようだが、あまり凝ったギミックを使ってもしかたないのでこんな形にしてみた。
さて、この表示は次のような理屈で動作する。
- .macに新しく用意された「Web」フォルダの中にある「Sites」フォルダ(※1)に任意のフォルダ(※2)を用意してその中に画像ファイルを放り込む。放り込む画像ファイルは1個だけでよい。1つのファイルから、サムネール・拡大画像両方を作り出す。
- サムネールを表示したいところに <img src="http://web.mac.com/《ユーザーID》/《フォルダ名(※2)》/《画像ファイル名》?transform=small" /> と記述してサムネールを表示させる。(※3)
- .macサーバーの任意の場所に後述するようなJavaScriptを組み込んだ.htmlファイルを仕込んでおく。
- 前述したサムネールにJavaScriptを組み込んだhtmlファイルにリンクを設定する。ただし、リンクに「?」を付与し、その後に拡大表示させたいファイル名を記述する。(※4)
function zoomingImage() {
var filpth = location.search;
filpth = filpth.substring(1,filpth.length);
if( filpth.length==0) {
document.write('no image');
} else {
document.write('<img src="http://web.mac.com/《ユーザーID》/《フォルダ名(※2)》/' + filpth + '?transform=large" />');
}
}
別段めんどくさいことをしているわけではありません。JavaScriptはロケーションのqueryを表示すべきファイル名として認識しているだけです。一つのファイルからサムネール+拡大画像を表示させているのは本来非公開の.macサムネールAPIを利用しています。このAPIに関しては、極々簡単に以前紹介させていただいていました。
.macのサムネール新API から2006年6月18日に引用今度の新APIは画像を示すアドレスに「?transform=[small/medium/large]」を付加することでサイズの異なる画像を表示させることができるというものです。
すごくかっこいい表示方法として、つい最近「mojo」さんが紹介していました。
新しい写真の見せ方〜LightboxJS から2006年6月18日に引用OpenStratusというサイトで紹介されていたJavascriptを使った写真の表示方法が、なかなかカッコイイ
これなんかに比べれば稚拙だし、エラーチェックも不十分だし、何より會澤環境にひどく依存していたりするかもしれない。でも、構造が簡単なので使う人が改造できるというのがいいのではないかと勝手に思っていたりする。
會澤はこの辺の説明へたくそなので、先のエントリや、読み込んでいるJavaScriptを見て抱くなりして理解を深めていただきたい。な〜んて偉そうなこといってもしゃ〜ないなぁ。
※1 iアプリを持っていないもしくは起動したことがない場合は「Sites」フォルダが存在しないかもしれません。その場合は作成していただいて結構です。「Sites」フォルダは、web.mac.com/YourID でアクセスした場合のホームに該当するフォルダですので作成しなければなりません。
※2 「Sites」フォルダ直下においても認識するようですが、フォルダ分けして置いた方が何かとよろしいと思います。極簡単にスクリプトを作りましたのでこのフォルダを決め打ちにしてあります。もしフォルダも指定するのであれば、queryだけでなく、「#なんたら」を付与してhashプロバティで補足してやればフォルダも補足可能です。この辺は工夫してみてください。
※3 この.mac APIはサイズ固定です、縦横のサイズに関しては自動変換してくれます。small/medium/largeの3種類で、サムネールとして指定しているsmallでは小さすぎると思う方は、medium を指定すればよいです。また、拡大画像として large を使用していますが、原寸大で表示させたい場合は、JavaScript中の「?transform=large」を削除すればよいです。
※4 例)zoom.htmlというファイルにJavaScriptを仕込んで、XYZ.jpgというファイルを表示させる場合は、「zoom.html?XYZ.jpg」と指定します。
by mojo(2006-06-18T12:25:45-05:00)
実は前に會澤さんが.Macを使った写真の活用法をエントリしたやつをブックマークしていて、いつか自分でいじろうと思いつつ、なかなか活用できないでいたのです。
自分で写真をアップして試してはいたんですけどね。
向こうでやっていたFileMakerを使ったお知らせボードみたいなやつとか、自分で工夫できていいなぁと、うらやましく思っております。
by 會澤(2006-06-18T21:49:42-05:00)
何をおっしゃいますか、mojoさんのところの色々工夫なさってますがね。
こうしたいなぁと思ったときに試行錯誤しています。
今はいろんな処理を自動化して手がかからなくすることを目論んでいます。人間が考えるのはエントリの内容だけ。そうなればいいですね。
by mojo(2006-06-18T12:25:45-05:00)
実は前に會澤さんが.Macを使った写真の活用法をエントリしたやつをブックマークしていて、いつか自分でいじろうと思いつつ、なかなか活用できないでいたのです。
自分で写真をアップして試してはいたんですけどね。
向こうでやっていたFileMakerを使ったお知らせボードみたいなやつとか、自分で工夫できていいなぁと、うらやましく思っております。
by 會澤(2006-06-18T21:49:42-05:00)
何をおっしゃいますか、mojoさんのところの色々工夫なさってますがね。
こうしたいなぁと思ったときに試行錯誤しています。
今はいろんな処理を自動化して手がかからなくすることを目論んでいます。人間が考えるのはエントリの内容だけ。そうなればいいですね。
Posted by kaizawa | TrackBacks