2007-12-29 Lightbox系ライブラリのまとめ [長年日記]

_ Lightbox系ライブラリのまとめ

Lightboxをかなり前にこのサイト導入していますがその際に若干不具合があった(ようにみえた)ので、自分なりに修正し、その内容を公開していました。

LightBoxはかなり人気があるようで、それからかなり時間がたちますが、いまだにその日の日記にアクセスが結構あります。まだ需要があるようだし、その後新しいものや亜種がいくつか出ているらしいので再度見直してみました。

調べだすと自分が今までまったく知らなかったものもたくさんあって驚きました。全部をまとめて紹介しているページは見つけられなかったので、誰かの役に立つかもと思い、まとめて紹介してみます。

おそらく見つけられなかった同種のものがほかにもあると思いますので、知っている方はコメントで教えてもらえるとうれしいです!

Lightbox

初代のLightbox。今まで使っていたのはこれでした。同一ページ内に画像を表示するというコンセプトはこれが一番初めにはじめたようです(おそらく)。このコンセプトを元にいろいろな亜種が生まれています。

本家のバージョン2も出ていますが、それでもこちらの初代のほうが好きだというユーザーも存在しているようです。

プラグイン

WordPress用プラグイン

関連記事

Lightbox 2

Lightboxのバージョンアップ版。動きにアニメーションが加わり、Image Setとして複数の画像をまとめてスライドショーのように表示できる機能が追加されています。

プラグイン

WordPress用プラグイン。

関連記事

Lightbox Plus

初代Lightboxを独自に拡張したもの。以下の機能が追加されているそうです。

  • ウィンドウサイズよりも大きな画像を表示した際に、画像の拡大ができます。
  • 表示画像のサイズと表示位置がリアルタイムでウィンドウサイズに追従します。
  • 効果画像を貼付けることができます。
  • マウスホイールで画像の拡大率を変更することができます。
  • 拡大した画像はマウスでドラッグできます。
関連記事

Litebox

Lightbox2を元にmoo.fxを用いてサイズを軽くしたものだそうです。サイズはなんと3kb程度とのこと。結構人気があるようですね。

プラグイン

tdiary用プラグイン。

関連記事

iBox

作者がLightboxに足りないと思う機能を付け足したもの。以下の特徴があるそうです。

  • 11kb程度のサイズ。
  • 画像だけでなく、inline divs, 外部HTMLの表示が可能
  • JavaScriptを有効にしていないユーザーもサポート
  • prototypeやmoo.fx、scriptacluousなどに干渉しない
関連記事

GrayBox

画面上でスライドショーを作成できるもの。以下のような特徴があるそうです。

  • ポップアップ禁止ソフトに影響されない。
  • 22kbしかない(より小さいものはほかに多数ありますが)
  • セットアップが簡単
  • 使うのが簡単
  • CSSをつかって簡単にスタイルをコントロールできる
  • prototype.jsなどのライブラリを必要としないので、ライブラリが使えない環境にも組み込める。
関連記事

ThickBox

jQueryライブラリを用いたもの。以下のような特徴があるそうです。

  • 15kb程度のサイズ
  • ブラウザサイズよりも大きい画像はリサイズする
  • 画像だけでなく、iframeのコンテンツ、インラインのコンテンツ、AJAXコンテンツも対象
  • ブラウザのスクロール、サイズ変更などがあっても、常にブラウザの中央に表示される
  • 透過画像を自分で追加できる
  • リンクやボタンやイメージマップなどからも呼び出せる

ほかのものに比べると重い代わりに多機能な印象です。

関連記事

Slimbox

Lightbox2と内容、見た目はまったく同じですが、mootoolsというライブラリを使用することでMITライセンスとなりlightboxよりも気軽に使えるという点がメリットだそうです。以下の特徴があるそうです。

  • ページが表示されたときにはもうSlimboxの準備が出来上がっているため立ち上がりが早い
  • 矢印キーとESCキーを使って操作できる
  • 背景の画像をクリックすることで終了できる
  • Lightboxよりも安定しており、連続クリックなどをしても正常に動く
  • 正常にアニメーションが動かない特定のブラウザではアニメーションを表示しない

本家のLightboxと比較した場合の違いは以下のようなものがあるそうです。

  • イメージのリンクをクリックしたとき以外にも、Javascriptから起動できる
  • ライブラリが変更になったことでコードが書き直され、7kbと軽量になっている。ライブラリと合計しても26kb。
  • CSSがシンプルで正しいものになっている
  • 背景用の1pxのgifが必要ない
関連記事

ここまで沢山あると、どれを使っていいのか迷ってしまいます。リンクをたどってDemoを見て回るだけでも面白いです。

私はサイズの軽さからLiteboxを採用しようかなと考え中です。

Tags: web css plugin | Bookmark:

_ Liteboxプラグイン導入

比較検討の結果、Liteboxを組み込むことにしました。

導入方法

まず、プラグインを以下からいただきました。

ダウンロードし、tdiary/misc/pluginに配置しました。

その後、tdiaryの管理画面からプラグインを有効にします。

すると、以下のタグがヘッダに挿入されるようになります。

<link rel="stylesheet" href="./litebox/css/lightbox.css" type="text/css" media="screen">
<script type="text/javascript" src="./litebox/js/prototype.lite.js"></script>
<script type="text/javascript" src="./litebox/js/moo.fx.js"></script>
<script type="text/javascript" src="./litebox/js/litebox.js"></script>

このままでも問題なければこのままで。相対パスを変更したければtdiary.confにオプションを記入すればよいようです。記入できるオプション名と記入の仕方はプラグインの先頭に書いてくれています。

#   Options
#     @options['litebox.url'] = string
#       example:
#         @options['litebox.url'] = '/litebox/'
#
#     @options['litebox.resizeSpeed'] = integer
#       controls the speed of the image resizing (1=slowest and 10=fastest)
#
#     @options['litebox.borderSize']  = integer
#       if you adjust the padding in the CSS, you will need to update this variable

私の場合はHikiとtdiaryで共有する関係上@options['litebox.url']に絶対URLを指定しました。

@options['litebox.url'] = 'http://ebi.dyndns.biz/litebox/'

あとは、litebox本体を配置します。以下の場所からダウンロード。

配置する場所はヘッダで指定されている場所と一致するように配置します。この際に注意点が1つあります。

「ダウンロードしてきたライブラリ内のファイル名はlitebox-1.0.jsですが、プラグインが指定しているのはlitebox.js」です。

なので、ファイルをコピーするなり、シンボリックリンクを張るなり、名前を変えるなりして対応してください。

あとは「you must add onload="initLightbox()" into your body tag」ということですので、これを実現する必要があるのですが、どこでいじればいいのかよくわからず困りました。とりあえず、/tdiary/skel/header.rhtmlをいじってしまえば目的は達成できます。これが正しい方法なのかどうかはよくわかりません。

<body onload="initLightbox()">

でもこれで準備は完了。さて試してみよう・・・ということでimage_ex.rbをつかって画像をアップロード。ちなみにこのプラグインもすべての画像へのAリンクにref="lightbox"と付け加えています。

動作確認

そうしてできたのが以下の画像。クリックすればうまく動きます。と、言いたいところなのですが、うまく動きません(涙)

クリックすると一応動作はするのですが肝心の画像が表示されませんし、背景が半透明になるはずの動きもしません。正確には上のほうの少しだけしか対象になりません。これはまた私のサイトの構造やCSSが悪いのでしょうか・・・。

また修正対応が必要になりそうです。lightbox v1に引き続き今回もです・・・。(涙

今日はもう遅くなったので、また明日やります。年内に終わるといいなぁ。。。

追記

ずっとFirefoxで確認していたのですが、「もしかしたらIEならうまく表示されてるかも!」と思って確認してみたら、IE7でもIE6でもサイト自体正常に表示されなくなっちゃってました。ショック。

仕方が無いので、いったんプラグインを無効にしました。何でだろう・・・。

さらに追記

プラグインを無効にした上で手動でヘッダに記述をしてみたらあらかたうまく動いちゃいました。ただ、右下の閉じるボタンが表示されていませんが。プラグインの不具合かな?

loading.gifとcloselabel.gifに関しては相対パスで必ず./images/以下を見に行ってしまうような感じの動きに見えます。とりあえずとりにいきたがる場所に画像ファイルを置いてあげればうまく動きました。

これで一応動いたんだけど、なんだかちょっと腑に落ちない点が多々あるので、明日追加で確認しよう。

Tags: web plugin tdiary | Bookmark:
本日のツッコミ(全5件) [ツッコミを入れる]
  はしもと (2008-02-08 18:05)

すみません、トラックバックをもらって前半のまとめ記事は見ていたのですが、導入記事がある事に気がついていませんでした!<br><br>「you must add onload="initLightbox()" into your body tag」も「すべての画像へのAリンクにref="lightbox"と付け加えています。」も、プラグインの32行目以降、add_footer_procが出力するJavaScriptで処理されるはずなのですが、記事を読むと、このJavaScriptが出力されていなかったために正しく動作しなかったように思います。<br><br>add_footer_procはtDiary1.5.2から追加されたプラグイン用の命令なのですが、この記事を書かれた当時のtDiaryのバージョンはいくつだったかわかりますか?

  えび (2008-02-09 21:07)

はしもとさん。<br><br>コメントありがとうございます。正確にバージョンは覚えていないのですが、Debianのtestingを使っており、この日記を書いた時には1.5.2以上であったことは間違いないです。<br><br>実はその後、ほかのプラグインでもadd_footer_procがうまく動作しない現象が出ていて、ちょっとだけ調べていました。その結果、どうやらほかのプラグインと干渉してしまっているような感じです。プラグインとして1つだけ選択するときちんと動作するのでそう判断しました。<br><br>さらに、現在Wikiモードを使っているのですが、これともなにやら依存関係があるらしく、Wikiモードをまだつかっていなかった頃に書いた日記ではうまく動いたりもしていました。<br><br>ここまでしか調べてなかったりします・・・。コメントいただきありがとうございました。<br><br>(そのうち原因を追求、特定できるといいのですが・・・)

  はしもと (2008-02-10 16:55)

ボクは最初からWikiモードで使っているのですが、Wikiモードと他のモードとの混合だと何かあるのかな(^_^;?<br><br>このプラグインは出力結果のHTMLに対してJavaScriptで処理をしているからモードは関係ないはずなのですが、んー、何ででしょうねえ…。<br><br>導入記事を見て、ようやく自分のところで設置例とサンプルを書く気力が湧いて用意しました。作りっぱなしで放置はダメですね、ありがとうございました。<br><br>何か原因がわかりましたら、ぜひご連絡ください。

  えび (2008-02-14 00:40)

>はしもとさん<br>コメントありがとうございます。また、書かれた設置例とサンプルも拝見しました。少しでも私の書いたものが動機、モチベーションになったのであればうれしく思います。<br><br>このプラグイン、需要あると思います!<br><br>私の方でも時間が取れたときに現状の動作を追って見たいと思います。<br><br>で、そのときに、どのようにtdiaryのプラグインの動作検証、デバッグをすれば効率的なのか?ということが良くわからなかったりします。自分でも調べて見ますが、もしもtdiaryのプラグイン開発、およびデバッグの手法に関してよい方法などご存知であれば、ご自身のブログでエントリに起こしてもらうなどしてもらえるとありがたいです。<br><br>私も負けないように(?)自分で調べて、ある程度わかればエントリにしてみようと思っています。

  えび (2008-03-09 17:46)

その後、プラグインを有効にすると、IEではサイトが開けないという現象も出たりしました。原因はまだ不明・・・。

本日のTrackBacks(全2件) []
_ ebi's diary (2008-03-20 18:46)

litebox.rbが動かなかった理由と新たな問題(原因は間違いなく私) このサイトとliteboxの不幸せな関係 以前litebox.rbを導入しようとしたけれどもうまくいかないという事を書きました。 ebi's diary - Lightbox系ライブラリのまとめ - Lightbox系ライブラリのまとめ , Litebox..

_ ebi's diary:litebox.rbがIEでうまく動かなかった原因を教えてもらっちゃいました! (2008-04-01 10:16)

ebi's diary - Lightbox系ライブラリのまとめ - Lightbox系ライブラリのまとめ , Liteboxプラグイン導入 ebi's diary - tdiaryへのWindows Live Writerでの投稿テスト , tdiaryへのWindows Live Writerでの画像投稿テスト , 課題。 , 叱ってもらえる.. ebi's diary - litebox...