HOME

システム開発の株式会社システックス

2009年12月22日

Ajax入門(jQueryとThickbox)

何はともあれ

百聞は一見に如かず、です。

まずは、下記に続くサンプルを試して頂きながら、
「Ajax対応のJapascriptライブラリ」の“便利さ”を感じて頂ければ、と思います。

jQuery

【公式サイト】
・「jQuery」(英語)

【特徴】
Javascriptライブラリ(Javascriptの塊)の一つ。
Webページ内の要素(文字とか段落とか画像とか)に対して、比較的簡単なJavascriptのコードを記述するだけで、様々な効果を与えることができます。

【ダウンロード】
上記公式サイトにて、「Download(jQuery);」ボタンをクリックすると、最新版をダウンロードする画面に遷移するので、下記のファイルをダウンロードして下さい。
 ・jQuery-X.X.X.min.js

【コード例】
≪sample.html≫

<html>
<head>
    <title>jQueryサンプル</title>
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <link href="sample.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
    <!--
    $(function() {  
        $('#Area1').mouseover(function(){
            $(this).css("background-color","#ff0000")
        });
        $('#Area1').mouseout(function(){
            $(this).css("background-color","#ffffff")
        });
        $('#Area2').click(function(){
            $('div#Area2 span').fadeIn("slow")
        });
    });
    //-->
    </script>
</head>
<body>
    <div id="Area1">
        ココのエリアに、マウスカーソルを重ねたり外したりすると、色が変わります。
    </div>
    <div id="Area2">
        ココのエリアをクリックすると・・・<br />
        <br />
        <span>文字がフェードインされます。</span>
    </div>
</body>
</html>

≪sample.css≫

div
{
    border-right: #000000 1px solid;
    border-top: #000000 1px solid;
    border-left: #000000 1px solid;
    border-bottom: #000000 1px solid;
}
div#Area1
{
    width: 400px;
    height: 100px;
    left: 100px;
    top: 100px;
}
div#Area2
{
    width: 400px;
    height: 100px;
    left: 100px;
    top: 400px;
}
div#Area2 span
{
    display: none;
}

【参照URL】
・「jQuery: jQuery実践サンプル
 豊富なサンプル量を公開しています。
・「はじめてのjQuery
 jQueryを使って何かやってみたい方は、一度、これを見ておいてもいいかもしれません。

ThickBox

【公式サイト】
・「ThickBox 3.1」(英語)

【特徴】
jQuery対応のJavascriptライブラリで、ブラウザ上の特定のエリア(テキストや画像)を、ポップアップのように表示することができます。特に、画像の拡大表示やスライドショーとして応用されることが多いです。
PartyWeb」では、Webアルバム機能に ThickBox を応用しています。

【ダウンロード】
上記公式サイトにて、「Overview」のところにある「Download」にリンクされている下記のファイルをダウンロードして下さい。
 ・thickbox.js、もしくは、thickbox-compressed.js
 ・ThickBox.css
 ・loadingAnimation.gif
  (※loadingAnimation.gif は、thickbox.js を基点に「images/loadingAnimation.gif」となるように配置して下さい。)

【コード例】
≪sample2.html≫

<html>
<head>
    <title>Thickboxサンプル</title>
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="thickbox.js"></script>
    <link href="thickbox.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <a class="thickbox" title="1" rel="group1" href="images/1.jpg"><img alt="1" src="images/1_t.jpg" /></a>
    <a class="thickbox" title="2" rel="group1" href="images/2.jpg"><img alt="2" src="images/2_t.jpg" /></a>
    <a class="thickbox" title="3" rel="group1" href="images/3.jpg"><img alt="3" src="images/3_t.jpg" /></a>
</body>
</html>

【参照URL】
・「Thickbox・Examples
 ThickBox の公式サイトの「Example」にて、いくつかのサンプルが公開されています。
・「class=”thickbox” に rel をつけると画像が表示されない
 Thickbox 3.1 + jQuery 1.3.2 で、上記のコード例のようなスライドショーを作ろうとするとハマると思います。
 対処としては、Thickbox.js の79行目の「@」を削除して保存するだけです。

【ちなみに】
2009年9月30日、ThickBox の作者・Paul Irish氏は、
「しばらく Thickbox のメンテは行わない。」という告知をしており、
Thickbox と同じような動きをする下記のようなJavascriptライブラリを紹介しています。

・「colorbox
・「jQueryUI Dialog
・「fancybox
・「DOM window
・「shadowbox.js

それぞれ、表示の種類やHTML/CSSの書き方や異なりますので、自分の好みと状況によって使い分けるとよいでしょう。

次回予告

いかがでしょうか?
多少のコツは必要ですが、Javascriptライブラリを使えば、
比較的短いコードで、いろんな動き・効果・演出を付けることができそうではありませんか?

次回は、当社の「PartyWeb」の「スライドショー」機能を題材に、
より実用に向けたカスタマイズ方法についてご紹介できれば、と思います。