4

我正在使用 Fancybox 2.0.6 来显示图像和视频。当滚动图像/视频时(当画廊中有多个图像时),Fancybox 会显示上一个和下一个图标和链接。根据jquery.fancybox.css,可点击区域占据了图像/视频左右两侧的40%。这对图像非常有用,但是对于视频,它会阻止播放按钮,以便用户转到下一个/上一个视频,而不是能够播放或暂停视频。我想更改可点击区域的宽度,但仅限于视频 - 我希望它对图像保持不变。我研究了 Fancybox,发现我可以使用 wrapCSS 为 Fancybox 的多个实例创建自定义样式,但我无法让它工作。

这是我的 js 调用

<script type="text/javascript">
    $(document).ready(function() {
    $(".vimeo").fancybox({
    width: 781,
    height: 440,
    type: 'iframe',
    fitToView : false,
    wrapCSS    : 'fancybox-nav-video'
    });
    });
</script>
<script>
$(document).ready(function() 
{
$('.fancybox').fancybox(
    {
        padding : 0,
        openEffect  : 'elastic'
    }
    );
    $(".fancybox").fancybox(
    {
        wrapCSS    : 'fancybox-nav',
        closeClick : true,
        helpers : {
            overlay : {
                css : {
                    'background-color' : '#000'
                }
            },
            thumbs  : {
                width   : 50,
                height  : 50
            }
        }
    }
    );
}
);
$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.png'],a[href$='.gif']").attr('rel', 'gallery').fancybox();      
</script>

以下是我在 HTML 中显示图像和视频的方式:

<a class="fancybox" rel="gallery1" href="image1.jpg">
<a class="fancybox" rel="gallery1" href="image2.jpg">
<a class="vimeo" rel="gallery2" href="videoplayerlink1">
<a class="vimeo" rel="gallery2" href="videoplayerlink2">

我是否需要在 .js 文件中添加或更改任何内容?我错过了什么?

4

1 回答 1

12

首先你需要明白,当你使用选项时,会在fancybox wrap()中添加wrapCSS一个新的选择器,所以添加选项意味着当你打开fancybox时你会得到class.fancybox-wrapwrapCSS:'fancybox-nav-video'

<div class="fancybox-wrap fancybox-nav-video ....etc." ....

其次,您需要为此类新选择器声明特定的花式框按钮 CSS 属性(加载花式框 css 文件后的内联 CSS 声明):

.fancybox-nav-video .fancybox-nav {
    width: 60px;       
}
.fancybox-nav-video .fancybox-nav span {
    visibility: visible; /* arrows will be permanently visible */
}
.fancybox-nav-video .fancybox-next {
    right: -60px; /* move right outside fancybox area */
}
.fancybox-nav-video .fancybox-prev {
    left: -60px; /* move left outside fancybox area */
}

请注意,这些新的 css 属性将仅应用于带有类的 fancybox 包装fancybox-nav-video(我们使用了该wrapCSS选项)。这些 css 会将按钮以及可点击区域放置在 fancybox 之外,从而清除 vimeos 的播放按钮。因为那样,我们使导航箭头永久可见,否则访问者将不知道悬停在哪里。

第三,您只需将所有花式框自定义脚本包装在一个.ready()方法中,例如:

<script type="text/javascript">
 $(document).ready(function() {

// fancybox for vimeo
  $(".vimeo").fancybox({
    width: 781,
    height: 440,
    type: 'iframe',
    fitToView : false,
    wrapCSS : 'fancybox-nav-video' // add a class selector to the fancybox wrap
  });

// fancybox for images
  $(".fancybox").fancybox({
   // options for images here
  });

 }); // ready
</script>
于 2012-07-25T23:28:57.920 回答