WebTecNote

[MooTools] mooZoomGallery Plugin

mooZoomGalleryはサムネイル画像から拡大画像への表示を、画像が並んでいるエリア内で行うMooTools用ギャラリープラグインです。
LightBoxのようにレイヤーを被せて表示するのではなく、他のサムネイルを非表示にする事で画像を表示する場所を確保します。
……なんかこの動きどこかで見たような気がしなくもないですが、
このプラグインは全て同じサイズのサムネイル画像を並べたレイアウトに特化しています。


View Demo

使い方

mooZoomGalleryを使用するにはMooTools1.2.3以上が必要です。
ダウンロードのZIPには必要なCoreとMoreが含まれていますが、一応必要ファイルの入手から解説します。

MooToolsダウンロードページからMooTools Coreファイルをダウンロードしてください。

その後More Builderのページに飛んで、Fx.ScrollAssetsをチェックしてダウンロードしてください。
(MoreクラスはCoreと同バージョンでないと動作しません)

ダウンロードしたファイルを適当に名前を変更したら、ページのheadにScriptタグで読み込ませます。

<script src="js/mootools-1.2.4-core.js" type="text/javascript"></script>
<script src="js/mootools-1.2.4-more.js" type="text/javascript"></script>
<script src="js/mooZoomGallery.js" type="text/javascript"></script>

その後にプラグインを動かすためのソースを記述します。
最小構成は次のようなものです。

<script type="text/javascript">
//<![CDATA[
window.addEvent("domready",function(){ 
	new mooZoomGallery("gallery");
});
//]]>
</script>

カッコの中(第一引数)に、ギャラリーのIDを入れます。

(X)HTML & CSS Styling

元々このクラスがmooContreGalleryの派生なので、(X)HTMLに関しては同じ構造でOKなのですが、
まとめると以下のような条件があります。

※1:大きくても拡大も表示もされますが、floatのクリア目的でoverflow:hiddenをしているとはみ出た部分が表示されません。
※2:高さ指定が無い場合は自動で取得しますが、プラスの誤差が生じます。

(X)HTMLソースの例

<ul id="gallery"><!--ID指定するギャラリー-->
	<li><!--ギャラリーの子要素(自動取得)-->
		<a href="images/01.jpg" class="thumb"><!--サムネイル画像とそれを入れる要素。クラス名必須-->
			<img src="images/01_thumb.jpg" alt="" width="150" height="150" />
		</a>
		<div class="info">Image:01</div><!--フェードで表示される説明要素。クラス名必須-->
	</li>
</ul>

デモはリストで作られているんですが、入れ子関係とIDやクラス名が合っていれば違う要素でも作れます。
IDやクラス名はオプションで変更可能です。

拡大画像のSRCはサムネイルから取得するので画像にリンクを張らなくてもサムネイル画像さえあれば動作します。
リンクを張るとクリックした時とかに点線が付いてしまうため、デモではoutline: noneにしています。
IE7以下は非対応なので、その辺はお好みでどうぞ。

Class Options

オプション名(タイプ):デフォルト値 です。

遅延(Dration)は数字を大きくする程遅くなります。
文字列の場合はsort、normal、longの3つが使えます。

トランジションについてはこちらのドキュメントにあるものが使えます。

Option Syntax:

第一引数でIDを指定した後に、第二引数で変更するものを指定します。

new mooZoomGallery("gallery", {thumbClass:".thumbnail", offset:0 });

StartとCompleteイベントの各オプションは、指定した関数に引数でクリックした要素そのものとインデックス番号が渡されます。

onStart:function(element, index)

それを利用して色々な効果をつけることが可能です。
クリックした時に枠線が表示されるようにする場合は次のようになります。

<script type="text/javascript">
//<![CDATA[
window.addEvent("domready",function(){ 
	new mooZoomGallery("gallery",{
 		onStart:function(el){ el.setStyle("border","solid 1px #005599") },
 		onComplete:function(el){ el.setStyles({"border":"none"}) }
	});
});
//]]>
</script>

Download

“mooZoomGallery” をダウンロード

moozoomgallery.zip – 1307 回のダウンロード – 565.15 KB

Change Log

モバイルバージョンを終了