我正在使用Fancybox与Pikachoose集成,如下所述:
http://www.pikachoose.com/how-to-fancybox/

我正在尝试让灯箱显示下一个和上一个箭头,但不在pikachoose舞台上显示,我遇到了一些麻烦。我试图在脚本的fancybox部分中添加showNavArrows: true的选项,但是它不起作用。所以然后我尝试使用this: {text: {previous: "Previous", next: "Next" }}显示pikachoose上的nav选项
但我不断收到错误消息,可能是我的语法没有在正确的地方?
有人可以帮忙吗?

这是我正在使用的代码:

$(document).ready(function () {
    var a = function (self) {
        self.anchor.fancybox({
            transitionIn: elastic,
            transitionOut: elastic,
            speedIn: 600,
            speedOut: 200,
            overlayShow: false
        });
    };
    $("#pikame").PikaChoose({
        showCaption: false,
        buildFinished: a,
        autoPlay: false,
        transition: [0],
        speed: 500,
        showCaption: false
    });
});

最佳答案

http://www.pikachoose.com/how-to-fancybox/中说明的方法的问题在于,您将fancybox绑定(bind)到当前的pikachoose元素self.anchor

使用这种方法,因为只有一个皮卡丘斯图像,所以无法知道哪组图像属于fancybox画廊(您需要多个元素共享相同的rel属性):每个图像都显示为动态切换其图像。 href容器内的src<a>属性(分别为<img>.pika-stage标签)。

作为一种解决方法,您需要先将footbox组的元素构建为,然后再将html结构绑定(bind)到pikachoose(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)。使用此脚本创建遍历每个 anchor 的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绑定(bind)到相同的选择器#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
  }

请注意,我们使用click(需要jQuery v1.7 +)将.on()事件绑定(bind)到pikachoose元素self.anchor,以使用手动方法$.fancybox([group])触发fancybox画廊。

对于fancybox v1.3.4或v2.x,此解决方法同样适用。使用v1.3.4查看 DEMO ,即使使用IE7,它似乎也可以正常工作;)

关于jquery - Pikachoose/Fancybox集成-灯箱上的导航箭头,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12887761/

10-11 12:38