TOP書籍連動> スクロールバーを追加する
JPSpanを使ってAJAXをしよう!
JPSpanを使ってAJAXをしよう!

第3回:テーブルにスクロールバーを実装する

著者:Joshua Eichorn   2005/11/16
前のページ  1  2   3  次のページ
スクロールバーを追加する

   スクロールバーを完成させるには、行の削除やデータの追加を実装する必要がありますが、その前にここまでの動作を確認するため、実際にスクロールバーを作成してみましょう。

   スクロールバーの作成は少し難易度が高くなります。Webブラウザにはスクロールバーがありますが、スクロールバーのためのJavaScriptAPIやHTMLは用意されていないため、自分で一から作成する必要があります。しかし、スクロールバーを作成すること自体は非常に簡単です。スクロールバーを構成する各パーツの画像を取得して、CSSを使って各パーツに分ければよいのです。

   そうすることで、スクロールバーの外見を簡単に変えることができます。例えば、サイトに合う配色にしたい場合でもすぐに対応できます。今回のスクロールバーに用いるCSS、HTML、画像はソースコードに含まれています。

   スクロールバーを動作させるため、各イベントにJavaScriptのアクションを割り当てる必要があります。コンテナとなるDIVタグを作成し、コンテナのidを元に新しいインスタンスを作成します。スクロールバーをHTMLのテーブルに関連づける部分のコードは、リスト8に掲載しています。今回のやり方では、スクロールバーを連結するためのテーブルを用意しています。HTMLは見づらくなりますが、一番簡単で問題なく配置できる方法です。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
     <head>
          <title>Scroll Bar</title>
          <link rel="stylesheet" href="scrollbar.css"type="text/css"/>
          <script type="text/javascript" src="scrollbar.js">
          </script>
     </head>
     <body>
          <table cellpadding=0 cellspacing=0 border=0>
               <tr>
                    <td>

               <table border="1">
                    <tr>
                         <th>Col 1</th>
                         <th>Col 2</th>
                    </tr>
                    <tr> <td>Col 1</td> <td>Col 2</td> </tr>
                    <tr> <td>Col 1</td> <td>Col 2</td> </tr>
               </table>
                    </td>
                    <td>
                         <div class="scrollBar" id="bar"></div>
                    </td>
               </tr>
          </table>
          <script type="text/javascript">
          var bar = new ScrollBar('bar');
          </script>
     </body>
</html>

リスト8:スクロールバーをHTMLのテーブルに関連づける部分のコード

   リスト9に、スクロールバーを実装するためのJavaScriptクラスを掲載します。コンストラクタではまず、親コンテナーのclientHeight属性を使って、スクロールバーの高さをセットします。実際のスクロールバーでは、onScrollUpとonScrollDownメソッドをオーバーライドする必要がありますが、この部分に関してはこの記事では書かないことにします。

1 ⁄⁄ JavaScript で作ったスクロールバー
2 function ScrollBar(id) {
3      var barHTML = '<div class="buttonUp"><⁄div>' +
4      '<div class="bar"><div class="capTop"><⁄div>' +
5      '<div class="gripper"><⁄div><div class="capBottom">' +
6      '<⁄div><⁄div><div class="buttonDown"><⁄div>';
7      this.element = document.getElementById(id);
8
9      this.element.innerHTML = barHTML;
10      this.element.style.height =
11      this.element.parentNode.clientHeight +"px";
12
13      var divs = this.element.getElementsByTagName('div');
14      for(var i = 0; i < divs.length; i++) {
15      this[divs[i].className] = divs[i];
16      this[divs[i].className].worker = this;
17      }
18
19 this.buttonUp.onclick = function()
20      { this.worker.onScrollUp(); }
21 this.buttonDown.onclick = function()
22      { this.worker.onScrollDown(); }
23 this.gripper.onclick = function()
24      { this.worker.onGripper(); }
25 }
26
27 ScrollBar.prototype.setHeight = function(height) {
28      this.element.style.height = height;
29 }
30
31 ScrollBar.prototype.onScrollUp = function() {
32      alert('scroll up');
33 }
34
35 ScrollBar.prototype.onScrollDown = function() {
36      alert('scroll down');
37 }
38
39 ScrollBar.prototype.onGripper = function() {
40      alert('clicked Gripper');
41 }

リスト9:スクロールバーを実装するためのJavaScriptクラス

前のページ  1  2   3  次のページ


Joshua Eichorn
著者プロフィール
Joshua Eichorn
Joshua Eichornは、PHPを使ったWebサイトを7年間制作してきました。彼は、非常に有名なPHPのドキュメーションツールであるphpDocumentorの制作者です。また彼は、アリゾナ州立大学のScience in Computer InformationSystems学部の学士号をとっています。
彼はUversa社のシニア設計者として、AJAXをUversa社のアプリケーションに追加する作業を行っています。現在、アリゾナ州フェニックスに住んでいます。


INDEX
第3回:テーブルにスクロールバーを実装する
  JPSpanプロキシクラス
スクロールバーを追加する
  スクロールバーに接続する