用其他链接调用fancybox gallery

时间:2012-02-24 15:21:27

标签: jquery fancybox gallery

我有很独特的情况。这是我的场景: 4个缩略图链接到图库+ 1个中等图像(指向与第一个缩略图相同的源)。我想通过单击中间图像来打开相同的图库,但是当我用“rel”属性链接它们时,我在循环中有两次第一张图片(循环中有5张大图像)。有没有办法在外部链接中调用指定的fancybox图库?这样我可以触发媒体图像上的点击功能,并且在循环中仍然只有4个大图像。请帮忙,我找不到解决方案。

更新

这是我的HTML

<div class="details_gallery">
 <a href="max/1.jpg" class="fancybox"><img src="mid/1.jpg" /></a>
 <div class="details_gallery_min">
  <a rel="details" href="max/1.jpg" class="fancybox"><img src="min/1.jpg" alt="" /></a>
  <a rel="details" href="max/2.jpg" class="fancybox"><img src="min/2.jpg" alt="" /></a>
  <a rel="details" href="max/3.jpg" class="fancybox"><img src="min/3.jpg" alt="" /></a>
  <a rel="details" href="max/4.jpg" class="fancybox"><img src="min/4.jpg" alt="" /></a>
 </div>
</div> 

点击“中间”图片时,我想触发“细节”库...

2 个答案:

答案 0 :(得分:13)

我要做的是修改“ mid ”图片的链接以触发图库onclick而不是图库本身的一部分,如:

<a href="max/1.jpg" onclick="$('a.fancybox').eq(0).trigger('click'); return false;"><img src="mid/1.jpg" alt="mid image" /></a>

.eq()方法确保图库从第一张图片开始,否则它将从绑定到fancybox的最后一个元素开始。您可以指定从库的另一个元素开始。

答案 1 :(得分:5)

<div class="details_gallery">
 <a href="#" class="manualfancybox">Manual Call Fancybox</a>
 <div class="details_gallery_min">
  <a rel="details" href="max/1.jpg" class="fancybox"><img src="min/1.jpg" alt="" /></a>
  <a rel="details" href="max/2.jpg" class="fancybox"><img src="min/2.jpg" alt="" /></a>
  <a rel="details" href="max/3.jpg" class="fancybox"><img src="min/3.jpg" alt="" /></a>
  <a rel="details" href="max/4.jpg" class="fancybox"><img src="min/4.jpg" alt="" /></a>
 </div>
</div>

<script>

$(document).ready(function(){
    $(".manualfancybox").click(function() {
        var photos  = new Array();

        $(".details_gallery_min a").each(function(){

            href = $(this).attr("href"); 
            title = $(this).attr("title"); 
            photos.push({'href': href, 'title': title})         

        });

        jQuery.fancybox(photos , 
            {   'transitionIn' : 'elastic', 
                'easingIn' : 'easeOutBack', 
                'transitionOut' : 'elastic', 
                'easingOut' : 'easeInBack', 
                'opacity' : false, 
                'titleShow' : true, 
                'titlePosition' : 'over',
                'type'              : 'image',          
                'titleFromAlt' : true 
            }
        );
    });
});

</script>