グレーアウト表示ライブラリ
Lightbox.jsや、Livedoor Readerのフィード追加画面のような、背景全体をグレーアウト表示させるためのライブラリです。(gray+layerで、glayer.js)
下記のような機能を持っています。
なお、Ver 2.0 にて、prototype.js、script.aculo.usを使用せずに、glayer.jsのみでフェードイン、フェードアウトによるグレーアウト表示が出来るようになりました。
glayer.jsを拡張して、+αを提供するためのglayer_ex.jsというライブラリを提供していますので、下記もあわせてご参照ください。
Ver 2.6 : 2008/09/10
本ページ自体がサンプルです。
また、下記ページにglayer.jsに+αを追加したサンプルがあります。
<script type="text/javascript" src="./glayer.js"></script> <link rel="stylesheet" href="./glayer.css" type="text/css" />なお、glayer.cssの内容は、表示内容に応じてカスタマイズ可能です。(透過PNG or opacity、色合い変えたりなど)
// レイヤ表示 Glayer.show(); // レイヤ非表示 Glayer.hide(); // レイヤ表示(フェードイン) Glayer.fadeIn(); // レイヤ非表示(フェードアウト) Glayer.fadeOut();Glayer.show、hideの引数は、下記の通りです。
Glayer.fadeIn();レイヤのIDがデフォルト以外の場合には、第1引数として指定します。
Glayer.fadeIn('hoge');レイヤのIDが'hoge'で、フェードを5000msで描画し、描画完了後に"フェードイン完了"とalert表示する場合、下記のように書きます。
Glayer.fadeIn('hoge', {duration: 5000, callback: function(){alert('フェードイン完了');});上記例に対して、レイヤのIDがデフォルト('glayer')の場合には、nullを指定することによりデフォルトのIDが使用されます。
Glayer.fadeIn(null, {duration: 5000, callback: function(){alert('フェードイン完了');});各メソッドは対象のエレメントをリターンするので、クリックによりフェードアウトするようなレイヤを作成する場合には、下記のように書けます。
Glayer.fadeIn().onclick = function(){Glayer.fadeOut();};
レイヤだけではなく、他のエレメントも同時に表示/非表示を切り替えるために、下記の関数があります。
// レイヤ表示 Glayer.showParallel(['message']); // レイヤ非表示 Glayer.hideParallel(['message', 'message2']); // レイヤ表示(フェードイン) Glayer.fadeInParallel(['other']); // レイヤ非表示(フェードアウト) Glayer.fadeOutParallel(['other']);
これら関数は、引数としてレイヤ以外のエレメントを配列として受け取り、レイヤ表示/非表示と同時に指定されたエレメントの表示/非表示を切り替えます。
各関数の引数は下記の通りです。(単に第1引数として、同時に表示を切り替えるエレメントの配列が追加されただけになります)
Glayer.showParallel、hidehideParallelの引数は、下記の通りです。
Glayer.fadeInParallel、fadeOutParallelの引数は、下記の通りです。
レイヤ(デフォルトIDの'glayer')をフェードアウトするのと同時に、IDが'message'、'alert'のエレメントをフェードアウトさせる場合には下記のように書きます。
Glayer.fadeOutParallel(['message', 'alert']);
IE6では、z-indexがselectタグに適応されないため、これらのエレメントがレイヤの上にそのまま表示されてしまいます。(IE7では修正されている問題)
glayer.jsでは、レイヤの上に表示されるのを回避するため、レイヤを表示中はこれらのエレメントを消す(styleを"visibility:hidden")ようにしています。(Ver 2.3から)
IE6以前であることを判定した上で、セレクトボックスを非表示にしていますが、セレクトボックスの非表示を一律有効/無効に設定したい場合には、下記のプロパティにtrue(非表示にする)/false(表示したまま)を設定してください。
Glayer._hideOverElements = false;
MITライセンスとします。
商用・非商用に関わらず無償で利用することができます。著作権表記とライセンス表記さえ行えば、再配布、再利用に制約はありません。
原文はこちら:MIT-LICENSE.txt
IE6、IE7、Firefox2.0、Opera9、Safari2.0.4にて動作確認が出来ております。
お問い合わせ、コメント等は下記Blogまたは、Contact からお願いします。