search phpbb-phpbb-FC2BLOG-Info-Edit Template-Post-Edit-Upload-LogOut
2-1. MENU 項目MENU項目はjsファイル内で定義されるが、それはメニュー構造を忠実に反映した配列となっている。
例えば次のようなメニューの場合、そのjsファイル内での記述は以下のようになる。
階層メニューの表示例
menu1 menu2 menu3 ├menu1-1 ├menu2-1 ├menu1-2 ├menu2-2−┬menu2-2-1 ├menu1-3 ├menu2-2-2 ├menu2-2-3
Tigra Menuによるmenu項目の登録例
var MENU_ITEMS = [ ["menu1","http://url1", ["menu1-1","http://url1-1"], ["menu1-2","http://url1-2"], ["menu1-3","http://url1-3"] ], ["menu2","http://url1", ["menu2-1","http://url2-1"], ["menu2-2","http://url2-2", ["menu2-2-1","http://url2-2-1"], ["menu2-2-2","http://url2-2-2"], ["menu2-2-3","http://url2-2-3"] ] ], ["menu3","http://url3"] ]
メニュー階層の深さに配列次元が連動し、すなわち配列はメニューの階層構造をそのまま反映したものとなっている。
模式図的に書けば、この配列は以下のような構造となっているわけだ。
1 1-1 1-2 1-3 2 2-1 2-2 2-2-1 2-2-2 2-2-3 3--------------------------------------------------------
まず語らねばならぬことは、このような配列を見たのが初めてであるということだ。
それは恰もメニューそのものであるかのような、Javascriptによる配列表現であり、配列はメニューの構造を忠実に反映しているが故に、「構造的」なものとなっている。
1.全体構造Tigra Menuの全体は、3つのJavascriptファイル、1つのCSSファイル及びmenuを表示するための1つのHTMLの、合計5つのファイルから構成される。
まず、JavascriptファイルとCSSファイルは全て外部化されてHTMLから呼び出されると共に、メニューはHTML内に埋め込まれたたった1つの次のインスタンス生成文により表示される。
new menu (MENU_ITEMS, MENU_POS, MENU_STYLES);
//MENU_ITEMSはメニュー項目であり、メニューの階層に対応した 子持ちの配列となっている。 //MENU_POS, MENU_STYLESはそれぞれが2次元配列であり1次元目は 連想配列となっている。
JavascriptとCSS内では、メニューの構造、メニュー各項目、Onmouseout時の色、Onmouseover時の色、Onclick時の動作、階層メニューの表示とその位置及び隠蔽、などが定められており、Javascript文は、(1)menuとmenu_itemの2つの大きなクラス定義、(2)メニュー項目とリンク先、各種イベント処理、メニュー項目の位置・色・表示/非表示等のための定数値を設定する連想配列に大別される。
そして先の2つのクラス内において、当該コンストラクタのメソッドとしてイベント処理関数が定義されている。
<Javascript文の構成>
menu.js :メニューの構造を設定する menu_items.js :メニュー項目を設定する menu_tpl.js :メニューの装飾(位置、色等)を設定する
2.各部つづく・・・
オンラインで階層メニューが作成できてしまう優れものサイトTigra Menuを元にして、Javascriptを更に学習する過程を記してみたい。

オンラインで階層メニューを作成するその存在は『HTML&スタイルシートデザインブック』(エビスコム著 ソシム株式会社)で知った。
そもそもこの書籍では階層メニューが「プルダウンメニュー」として紹介されているので、久しく階層メニューのことではない、と決めてかかっていた。最近ひょんな機会から見直してみて、実はフォームを使ったプルダウンメニューではなく、まさしく階層メニューの意味であることが分かったのだ。
まあそんな用語の定義と適切な使い方については脇に置くとして、早速Tigra Menuでテスト的に階層メニューを作ってみた。作成は極めて簡単に行えるので、お好みの深さの階層メニューが数分で完成してしまった。もちろん、配置、文字色、背景色、メニューアイテムのサイズ等のデザインは自在に変更可能だ。余りに容易に出来るので、作成手順について述べるまでもないだろう。
オンラインBuilderで階層メニューを作成し終えると、5つのファイル index.html、menu.css、menu.js、menu_tpl.js、menu_items.jsが出来上がる。これらを一括ダウンロードすれば、ローカルPC上あるいはウェブサイト上で直ぐに活用できる。
出来上がった5つのファイルを分析するまず、Tigra Menuによりオンラインで作成される階層メニューの最大の特徴は、階層メニュー部分に関するHTML文が皆目存在しないことだ。(正確に言えば作成した複数のJavascript文を呼び出すスクリプト文がHTML内にある。)Javascriptとcssだけで階層メニューを実現しているのである。階層メニューはJavascriptにより吐き出され、HTML文内に書き出される。このことは最大の特徴であるだけでなく、最大の驚きでもあった。何故ならば、これまでネット上で検索し遭遇した階層メニューは、悉くHTML文内に様々な要素を書き連ね、それをJavascriptで制御する仕組みのものであったからだ。
更に、驚異はそれだけではなかった。Javascript文が私にとって相当難しいのである。配列を縦横無尽に使い、かつthis命令を多用しているが故である。これまで学んできたJavascriptは、配列を使ったりthis命令を使うことは部分的にあったものの、全面的に悉く配列とthisで埋め尽くされたJavascriptには馴染んでいないため、Javascript文の解読そのものが出来ないでいるのだ。
従って、学習すると銘打っても現時点ではBuilderで作成されたJavascript文を眺めても皆目分からず、分析どころの話ではない。まず配列とthis命令についてきちんと学習することから始めなければならないのである。(;´д`)トホホ
Sleipnir2がネットサーファーを熱くさせている昨今であるが、そのInstall時におまけでRoboFormがインストールされる。
もちろんRoboform単独で入手可能であり、利用も可能である。
RoboFormはパスワード管理, フォーム記入, パスワード生成, 自動ログイン等を可能とする多機能なブラウザプラグインアプリだが、これはこれまでの同様な機能のアプリに較べて、操作性において極めて優れている。(ロボフォームの機能: フォーム記入、自動フォーム記入、フォーム保存)
これまでも、IE専用のECOIE2という自動ログインツールや、汎用的なプライベート情報管理ソフトであるIDManagerを使ってきた。しかし前者はIE以外には使えないし、後者は一々登録作業を別に行わなければならなかったし、自動ログインする作業も手間が掛かった。ロボフォームはそれらの全ての欠点を補って余りある機能と操作性を有しているのだ。
知る人ぞ知るRoboFormだった(?)、いや私だけが知らなかったのだろう。何故ならばRoboFormは下に引用(RoboForm本家サイトから)したように、各種の賞を受賞しただけではなく、一般紙やパソコン専門誌で高い評価を得ているし、あのvectorからもダウンロードできるのだから。
なお、vectorの評価(VECTORによる「AI RoboForm PICKUP」記事)は一面的と言わざるを得ない。Webログイン時のメリットしか評価してないが、名前の由来(Form用Robot)からも明らかなように、フォーム記入時(例えばブログ上におけるコメント作成時)にも大いに役立つことをきちんと評価すべきだ。
いずれにせよ、Sleipnir2との同梱によって、RoboForm利用者は急激に増えるに違いない。
Javascript関連サイトリスト(since 2005/07/25)この階層メニューは或るサイトからの転用である。元にしたサイトではちらつきはないのだが、我がサイトではちらつきが出てしまう。別の階層メニューでもちらつきでさんざん悩まされたが、「ちらつき問題」が常につきまとっている!
結局ちらつき防止対策としてタイマーをセットせざるを得なかった。出来ればタイマーなんて面倒なことはしたくなかったのであるが、万策尽きた感があり、最後の最後の手段として採用せざるを得なかった。
しかし、元にしたサイトでは、タイマーなんて使わないでちらつきが発生していないのに、どうしてであろうか?
tableのセル内にdivタグを配置すればちらつかない、というような「文法」があるのであろうか?!?!
詳しい方のお知恵を拝借したい次第である。
そんなわけでリストを作成するどころではなく、またしても階層メニューで行き詰まってしまっているのであった・・・。
それに敢えてリストを壱から作らなくても、こんなにすばらしいサイト(「J.O.Y.」)があるのだから、今更不必要かも知れない───と落ち込んでいるのであった。
90%近いシェアを握っているインターネットエクスプローラの描画エンジンを利用したタブbrowser。沢山のタブbrowserがあるが、多機能、カスタマイズフリー、スクリプト利用等で一日の長がある。Gekkoエンジンへの対応も行われ、IEからの自立独立の方向に向かっている。2005年7月にはIE7が登場する見通しの中で、今後の発展が望まれる。
多様なCSS作成支援機能を備えた、タグ入力式 HTML&CSS作成支援エディタ。スキンデザインもすっきりしている。テキストエディター上で作成するよりも確実で安全にタグ打ちが出来る。
文字コードを選べないのが欠点。
StyleNote同様のタグ入力式 HTML&CSS 作成支援エディタ。長年使用してきたが現在StyleNoteに乗り換えつつある。
クリップボード履歴情報を活用する為のソフト。画像まで履歴を取ってくれるのが嬉しい。このソフトを使わない日は絶対ない程に重宝し、愛用している。
起動中のウィンドウの「コピーできない」説明文などの文字列を取得し、コピー可能な文字データにするツール。何かと便利。
ストリーミングデータを保存することが出来るソフト。動画利用には不可欠なソフトだ。
無料ながらレイヤー機能を有し、スクリプトによる拡張も可能な、sleipnir作者が提供している優れもの画像編集ソフト。
画面キャプチャソフトと言えばこれに勝るものなし、ではないだろうか? 様々な取得方法を有しており、ブログ作成にもHomepage作成に不可欠だ。Jtrimと並んでWoodyBellsの作品。
複数ファイルの同時編集は出来ないが、透過pngも作れる画像編集ソフト。
(以下当該サイトから抜粋)初心者にも簡単に操作が出来るフォトレタッチソフトです。多くの加工機能で画像に様々な効果を与えることができます。非常に軽快に動作するため、ストレスなく操作できます。
Animation Gifファイルを作れる無料ソフト。
キャプチャソフト。画面内にサイト全体が表示しきれない場合でも、これを使えば全体をキャプチャすることが出来る。
画像処理。画像のフォーマット変換のみならず、色数やサイズ、圧縮率の変更まで一括処理できてしまう『BatchGOO!』は、大量の画像をまとめて処理したいときに大変便利なソフト。BMP, TIFF, JPEG, PCX, PNG の相互変換をはじめ、色数・サイズ・解像度の統一、JPEG圧縮率の調節など、ホームページ用の画像や携帯電話用の壁紙を揃えるのに抜群の相性を見せる。(Vectorの当該ソフト紹介頁より抜粋引用)
名前から直ぐに想像が付くように画像のサイズを測るためのソフトだ。Homepage作成には欠かせない。2カラム、3カラムのレイアウトを行う場合に大変重宝する。
ランチャーソフトは沢山あるが、中でもこれが一押しだ。2年以上使ってきたがその操作性には毎日満足している。これを使い始めてからデスクトップには一切のアイコンを表示することをやめてしまった。
AdobeReader7によって、起動時間が長すぎるという長年のユーザーの不満はある程度解消した。そのためこの高速化ソフトは存在価値が低下してしまったかもしれない。AdobeReader6迄はこのソフトによる起動高速化で恩恵を受けてきた。
IE専用が難点だが、様々なサイト内でIDやパスワードを入力するのに重宝するソフト。コンテキストメニューから簡単に起動できるのがGood! sleipnir等のIEの描画エンジンを利用しているブラウザでも使える。
利用しているパソコンの諸元値を取得するには、このソフトがベストだ。インストール済みソフトの一覧が取得できるのも嬉しい。
WMPは機能が豊富なだけ重い。RealPlayerも同様だ。そこでMedia Player Classicを使いたい。動作が軽快なだけではなく、対応しているファイル形式もすこぶる多く、これひとつで、wmvもrmも表示できてしまうのだから凄い! 数多あるMedia Playerの王様と言えるだろう。
自宅でPCを起動しているときには必ず起動しているメディアプレーヤー。何かと過剰なWinampよりも、起動も速くスキンはシンプルだ。
DivX, Xvid, Mov, Vob, Mpeg, Mpeg4, avi, wmv, dv, などの動画をDVD-Video形式に変換できるフリーソフト。クリックするとDVD関連ソフト紹介サイト=「DVDなToolたち」なるHomepageが開きます。