SSブログ

lightboxを使ってみる。

デジハリの課題づくりの中で
地図のイメージの一部をクリックしたら、その場所の写真が表示される
というようなことをしたいと思って調べると
javascriptのlightboxというものと、jqueryとプラグインのfancyboxというのを使えば
イメージ通りのものができそうだと分かりました。

何の説明もしてないけど、javascriptについて書きます。
今回は、完全にメモです。
まずは、lightboxです。

lightboxのjavascriptのソースは、ここからダウンロードできます。

ダウンロードファイルの中には、index.htmlのファイルと、css、images、jsフォルダがあります。
css、images、jsのフォルダを同じディレクトリ内に置く場合は、このままで問題ないのですが
それぞれ別の場所に置く場合は、少しファイルを変更する必要があります。

まずcssフォルダ内のlightbox.cssの
#prevLink:hover, #prevLink:visited:hover { background: url(../images/prevlabel.gif) left 15% no-repeat; }
#nextLink:hover, #nextLink:visited:hover { background: url(../images/nextlabel.gif) right 15% no-repeat; }
の色が付いているところを、このcssファイルから画像ファイルまでの相対パスに変更します。

次にjsフォルダ内のlightbox.jsの
fileLoadingImage: 'images/loading.gif',
fileBottomNavCloseImage: 'images/closelabel.gif',
色が付いているところを、このjsファイルから画像ファイルまでの相対パスに変更します。

画像のファイルパスの変更は以上ですが、これだどFirefoxでは、うまく表示されないので
194行目(2.04の場合)に
event.stop();
if (!target.rel) target.rel=Element.readAttribute($(target), "rel");
this.start(target);
の色が付いている行を追加します。
この辺は、ネットで拾ってきたのでどういう意味なのかはよく分かっていません。


これで設定は終わりなので実際の使い方です。
head要素の内容に
<link href="css/lightbox.css" type="text/css" rel="stylesheet" media="screen" />
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>
<script src="js/lightbox.js" type="text/javascript"></script>
と記述します。ファイルパスは実際の環境のファイルパスにします。

クリックした場合に拡大させる対象のimg要素をa要素の内容にして、そのa要素のrel属性にlightboxと記述するだけです。

今回やりたいのはイメージのある部分をクリックした場合なので、クリッカブルマップを使います。
だからarea要素のrel属性にlightboxと記述しました。
出来たのがこれです。


表示はされるけど、なんとなく表示が遅いのが気になります。
そんな理由でjquery+fancyboxも試しました。
これについては、また明日書きます。


nice!(2)  コメント(0)  トラックバック(0)  [編集]
共通テーマ:パソコン・インターネット

nice! 2

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました
広告スペース
Copyright © HTMLの基本から勉強してみる All Rights Reserved.

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。