ども。鉄王です。

「なにやら『Shadowbox.js』がステキらしい」と聞いて、今作ってるサイトに組み込んでみました。組み合わせたコアライブラリは最近の定番、jQueryです。

ハマったのが、画像ローディング中のアニメGIF(loading.gif)がなかなか表示されなかったこと。ダウンロードしたZIPファイルを展開して

/foo
- index.html(このページでShadowbox.jsを使ってサムネイル表示)
/bar
- /css
- /js
- /images

みたいな感じで放り込んだんですが、一向に表示される気配ナシ。

で、いろいろ試した結果、loading.gifのパス指定でしくじってました〜アヒ〜(恥)。loading.gifを相対パスで指定する場合、表示する(X)HTMLファイルを基準にして考えないとダメなんすよね。

(X)HTMLファイル(/foo/index.html)の<head>セクションには、こんなふうに書き込まないといけないわけで。

<script type="text/javascript">
    //<![CDATA[
        $(document).ready(function() {
            var options = {
                loadingImage: ’../bar/images/loading.gif’
            };
            Shadowbox.init(options);
        });
    //]]>
</script>

「var options = 〜」なんてオプションがあるから、てっきりshadowbox.jsを基準にした相対パスでいいものだと思ってましたわ。

ついでについでに。

『Shadowbox.js』って英語圏のライブラリなんで、拡大表示したときの「Close」「Previous」「Next」などの表記(テキストリンク)を日本語にしたい!ってケースがあると思います。そんなときは、上記の「var options = 〜」の部分を、ごにょごにょとこんなふうに。

<script type="text/javascript">
    //<![CDATA[
        $(document).ready(function() {
            var options = {
                loadingImage: ’../../bar/images/loading.gif’,
                text: {
                    cancel: ’キャンセル’,
                    close: ’閉じる’,
                    prev: ’前の画像’,
                    next: ’次の画像’
                }
            };
            Shadowbox.init(options);
        });
    //]]>
</script>

まだまだ奥が深そうなので、ぼちぼち攻めていきますぜ。