ModalBoxを使って画像を表示する

ModalBoxでは表示するURLに画像のファイル名を指定することができません。このため、HTMLファイルを用意し、その中で画像を表示させる必要があります。この時に注意しなければいけないのは表示するHTMLファイル内に指定するリンクや画像のパス(URL)です。ModalBoxではダイアログを表示するページが基準パスになります。このため下図のようなフォルダ構成になっている場合、001.htmlから見た001.jpgファイルは以下のように<img>タグを指定する必要があります。

<img src="photo/001.jpg" width="384" height="216">

間違って<img src="001.jpg" width="384" height="216">としてしまうと画像は表示されません。 サンプル09ではサムネール画像をクリックするとダイアログ上に画像とキャプションを表示します。

サンプル09の実行結果

サムネールをクリックすると画像とキャプションが表示

ModalBoxはダイアログを表示するだけの機能しかありませんが、意外と融通が利くライブラリです。工夫次第ではスライドショーも可能ですし、アイデア次第でいろいろなことができるでしょう。

サンプル09

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
        <title>ModalBox サンプル</title>
        <link rel="stylesheet" href="css/modalbox.css" type="text/css" media="all">
        <script type="text/javascript" src="js/prototype.js"></script>
        <script type="text/javascript" src="js/scriptaculous.js"></script>
        <script type="text/javascript" src="js/modalbox.js"></script>
        <script type="text/javascript"><!--
        window.onload = function(){
            var aTag = $("album").getElementsByTagName("a");
            for (var i=0; i<aTag.length; i++) {
                aTag[i].onclick = function(){
                    Modalbox.show(this.href, { titler : "フォトアルバム", width:420, height:360 });
                    setTimeout("Modalbox.hide()", 5000);
                    return false;
                }
            }
        }
        // --></script>
    </head>
    <body>
    <h1>ModalBox サンプル</h1>
        <ul id="album">
            <li><a href="photo/001.html"><img src="thumb/001.jpg"></a>
            <li><a href="photo/002.html"><img src="thumb/002.jpg"></a>
            <li><a href="photo/003.html"><img src="thumb/003.jpg"></a>
            <li><a href="photo/004.html"><img src="thumb/004.jpg"></a>
        </ul>
    </body>
</html>