jquery – Pikachoose / Fancybox集成 – 灯箱上的导航箭头

前端之家收集整理的这篇文章主要介绍了jquery – Pikachoose / Fancybox集成 – 灯箱上的导航箭头前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用fancybox与Pikachoose的集成,如下所述:
http://www.pikachoose.com/how-to-fancybox/

我试图让灯箱显示下一个和之前的箭头,但不是在pikachoose舞台上,我有点麻烦.我试图在脚本的fancybox部分添加showNavArrows:true的选项,但它不起作用.那么我尝试使用pikachoose上的导航选项来显示:{text:{prevIoUs:“PrevIoUs”,next:“Next”}}
但我一直收到错误,可能我的语法不是在正确的地方?
有人可以帮忙吗?

这是我正在使用的代码

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

解决方法

http://www.pikachoose.com/how-to-fancybox/中解释的方法的问题是您将fancybox绑定到当前的pikachoose元素self.anchor.

使用这种方法,无法知道哪些图像组将属于fancybox图库(您需要多个元素共享相同的rel属性),因为只有一个pikachoose图像:每个图像都显示为动态切换.pika-stage容器内的href和src属性(分别为< a>和< img>标记).

作为一种解决方法,您需要在将html结构绑定到pikachoose之前构建fancybox元素组(pikachoose将修改DOM结构)

1).所以有这个HTML结构:

  1. <div class="pikachoose">
  2. <ul id="pikame">
  3. <li>
  4. <a title="one" href="image01.jpg" id="single_1"><img alt="" src="thumb01.jpg" /></a>
  5. </li>
  6. <li>
  7. <a title="two" href="image02.jpg" id="single_2"><img alt="" src="thumb02.jpg" /></a>
  8. </li>
  9. <li>
  10. <a title="three" href="image03.jpg" id="single_3"><img alt="" src="thumb03.jpg" /></a>
  11. </li>
  12. </ul>
  13. </div>

2).使用此脚本创建迭代通过每个锚点的fancybox元素组:

  1. var fancyGallery = []; // fancybox gallery group
  2. $(document).ready(function () {
  3.  
  4. $("#pikame").find("a").each(function(i){
  5. // buidl fancybox gallery group
  6. fancyGallery[i] = {"href" : this.href,"title" : this.title};
  7. });
  8.  
  9. }); // ready

3).然后将pikachoose绑定到相同的选择器#pikame.您可以使用.end()方法在第一个减速选择器上执行它而不复制它;)

  1. var fancyGallery = []; // fancybox gallery group
  2. $(document).ready(function () {
  3. // build fancybox group
  4. $("#pikame").find("a").each(function(i){
  5. // buidl fancybox gallery
  6. fancyGallery[i] = {"href" : this.href,"title" : this.title};
  7. }).end().PikaChoose({
  8. autoPlay : false,// optional
  9. // bind fancybox to big images element after pikachoose is built
  10. buildFinished: fancy
  11. }); // PikaChoose
  12. }); // ready

请注意,我们使用了pikachoose选项buildFinished:fancy,当我们点击大图时,它实际上会触发fancybox图库.

4).这是功能

  1. var fancy = function (self) {
  2. // bind click event to big image
  3. self.anchor.on("click",function(e){
  4. // find index of corresponding thumbnail
  5. var pikaindex = $("#pikame").find("li.active").index();
  6. // open fancybox gallery starting from corresponding index
  7. $.fancybox(fancyGallery,{
  8. // fancybox options
  9. "cyclic": true,// optional for fancybox v1.3.4 ONLY,use "loop" for v2.x
  10. "index": pikaindex // start with the corresponding thumb index
  11. });
  12. return false; // prevent default and stop propagation
  13. }); // on click
  14. }

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

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

猜你在找的jQuery相关文章