We love Lightbox JS 16:18:47
Category: CSS JavaScript | Comment: 2 | Trackback: 0
JavaScript で画像をポップアップ表示するのは「うっとうしい」だの「ださい」などのイメージが付きまとうが、そんな JavaScript による画像表示を一躍クールにしてくれたのが、Lightbox JS ですよね。
登場以来、みんな急速に自分のブログに組み込んで、デファクトスタンダードになりつつあるみんな大好き Lightbox JS ですが、こういう新しいものが好きな人で、みんなが使い出すとどうも個性が無くなってしまって面白くないと思う方も多くいらっしゃるのではないかと思います。
Lightbox JS は、Prototype フレームワークと script.aculo.us のエフェクトを利用しているので、内部を軽く弄るのは楽かもしれませんが、僕も JavaScript の知識がほとんど無いので、エフェクトを少し変えるくらいは出来るかもしれませんが、面倒と言えば面倒です。
そこで、個人的に最も簡単に見た目を変えるには、同封されている lightbox.css を弄ることと、画像を差し替える事です。今日はそんなどうでもいい事についての記事を書きました。
まず、リンク先の画像が表示された時の HTML の構造ですが、lightbox.js の中身を見ると、丁寧にコメントで構造を書いてくれています。
<div id="overlay"></div>
<div id="lightbox">
<div id="outerImageContainer">
<div id="imageContainer">
<img id="lightboxImage">
<div style="" id="hoverNav">
<a href="#" id="prevLink"></a>
<a href="#" id="nextLink"></a>
</div>
<div id="loading">
<a href="#" id="loadingLink">
<img src="images/loading.gif">
</a>
</div>
</div>
</div>
<div id="imageDataContainer">
<div id="imageData">
<div id="imageDetails">
<span id="caption"></span>
<span id="numberDisplay"></span>
</div>
<div id="bottomNav">
<a href="#" id="bottomNavClose">
<img src="images/close.gif">
</a>
</div>
</div>
</div>
</div>
これを見れば、CSS が分かる人にとっては、lightbox.css を弄るのは簡単なものです。色を白基調から自分のサイトに合わせるのもいいでしょう。
と言うわけで、僕はこんな感じにしてみました(ソース)。このサイトの配色であるピースネイビーを背景色にして、Close 画像を差し替えました。
それ以外にも、複数の画像をセットにした場合の特徴的なナビゲーションを分かりやすくするために、初めから半透明で表示しておいたのと、:before および :after疑似要素と content プロパティによる説明を付属しておきました。content プロパティは非常に便利で強力なんですが、IE が対応しておらず(多分 IE7 でも対応しないっぽいです。)、無くても問題ない内容のレベルでとどめて置かなければならないのが勿体ないです(とはいえ、大事な情報を content で生成するのは間違っていますが)。
ちなみに、content を用いた部分のソースはこんな感じです。
#imageData #caption:before {
content: "Title: ";
background-color: transparent;
color: #eee;
}
#imageData #numberDisplay:after {
content: "\A Press \"N\" key to next, and \"P\" key to previous";
background-color: transparent;
color: #eee;
}
\A による改行コード挿入は、現行の Opera 8.54 では大丈夫でしたが、Firefox 1.5.0.3 では解釈してくれませんでした。しかし、そこまで気にしだしたら正直スクリプト自体を弄った方が賢いと思うので、気にしないのが吉です。それでなくとも、content プロパティは十分優秀です。Safari はどうなのかな?iCapture という便利なサイトはあるけど、Lightbox JS の動作は分からないですしね。まぁ、Mac 持ってるんですけどね。
他に、Lightbox JS をこう弄ったら楽しいという話があれば教えて欲しいです。


Comments: 2
edzo | January 10, 2008 02:13 AM
map map [@/home/web/it
gald | January 24, 2008 04:46 PM
map map [@/home/web/it