http://www.pikachoose.com/how-to-fancybox/で説明されている方法の問題は、現在のpikachoose要素に fancybox をバインドすることですself.anchor
。
そのアプローチでは、fancybox ギャラリーに属する画像のグループを知る方法はありません (同じrel
属性を共有する複数の要素が必要になります)。 pikachoose 画像は 1 つしかないためです。コンテナ内の属性 (およびタグ) 。href
src
<a>
<img>
.pika-stage
回避策として、 html 構造をpikachooseにバインドする前に、fancybox グループの要素を構築する必要があります( pikachooseは DOM 構造を変更します)。
1)。したがって、このhtml構造を持つ:
<div class="pikachoose">
<ul id="pikame">
<li>
<a title="one" href="image01.jpg" id="single_1"><img alt="" src="thumb01.jpg" /></a>
</li>
<li>
<a title="two" href="image02.jpg" id="single_2"><img alt="" src="thumb02.jpg" /></a>
</li>
<li>
<a title="three" href="image03.jpg" id="single_3"><img alt="" src="thumb03.jpg" /></a>
</li>
</ul>
</div>
2)。次のスクリプトを使用して、各アンカーを反復する要素の fancybox グループを作成します。
var fancyGallery = []; // fancybox gallery group
$(document).ready(function () {
$("#pikame").find("a").each(function(i){
// buidl fancybox gallery group
fancyGallery[i] = {"href" : this.href, "title" : this.title};
});
}); // ready
3)。次に、pikachooseを同じ selector にバインドし#pikame
ます。メソッドを使用して.end()
、複製せずに最初の減速セレクターでそれを行うことができます;)
var fancyGallery = []; // fancybox gallery group
$(document).ready(function () {
// build fancybox group
$("#pikame").find("a").each(function(i){
// buidl fancybox gallery
fancyGallery[i] = {"href" : this.href, "title" : this.title};
}).end().PikaChoose({
autoPlay : false, // optional
// bind fancybox to big images element after pikachoose is built
buildFinished: fancy
}); // PikaChoose
}); // ready
pikachooseオプションを使用していることに注意buildFinished: fancy
してください。これにより、大きな画像をクリックすると実際に fancybox ギャラリーが起動します。
4)。関数は次のとおりです。
var fancy = function (self) {
// bind click event to big image
self.anchor.on("click", function(e){
// find index of corresponding thumbnail
var pikaindex = $("#pikame").find("li.active").index();
// open fancybox gallery starting from corresponding index
$.fancybox(fancyGallery,{
// fancybox options
"cyclic": true, // optional for fancybox v1.3.4 ONLY, use "loop" for v2.x
"index": pikaindex // start with the corresponding thumb index
});
return false; // prevent default and stop propagation
}); // on click
}
(jQuery v1.7+ が必要) を使用してclick
イベントをpikachoose要素にバインドし、手動メソッドを使用して fancybox ギャラリーを起動していることに注意してください。.on()
self.anchor
$.fancybox([group])
この回避策は、fancybox v1.3.4 または v2.x で同様に機能します。IE7 でも問題なく動作するように見える v1.3.4 を使用したDEMOを参照してください ;)