2

我在一些 youtube 视频中使用了 fancybox,我希望有导航按钮(覆盖层旁边的下一个和上一个按钮),就像在这个小提琴中一样。

这是我的幻想箱:

$('.fancybox-media')
    .attr('rel', 'playlist')
    .fancybox({
        openEffect: 'none',
        closeEffect: 'none',
        prevEffect: 'none',
        nextEffect: 'none',
        arrows: false,

        helpers: {
            media: {}
        },
        overlay : {
            css: { 'overflow-y': 'hidden' }
        },
        youtube : {
            autoplay: 1,
            hd: 1,
            wmode: 'opaque',    // shows X to close
            vq: 'hd720'         // default 720p hd quality
        },
        beforeShow : function(){
            $("body").css("overflow", "hidden"); // hide body scrollbar
        },
        afterClose: function(){
            $("body").css("overflow", "scroll"); // show body scrollbar
        }
    });

关于 JFK 的这篇文章,我将这些样式放在我的 css 文件中:

.fancybox-lock {
    margin: 0 !important;
}

.fancybox-nav {
    width: 60px;       
}

.fancybox-nav span {
    visibility: visible;
}

.fancybox-next {
    right: -60px;
}

.fancybox-prev {
    left: -60px;
}

和我的html:

<li class="closed">Headline
    <ul>
        <li class="fl"><a class="fancybox-media" href="http://www.youtube.com/watch?v=Dtb5Srdx7iY" rel="playlist"><img class="thumbnail" src="x.jpg"></a></li>
        <li class="fl"><a class="fancybox-media" href="http://www.youtube.com/watch?v=Dtb5Srdx7iY" rel="playlist"><img class="thumbnail" src="x.jpg"></a></li>
    </ul>
</li>

和实现的样式表:

 <!-- FancyBox -->
<script type="text/javascript" src="fancybox/jquery.fancybox.js?v=2.1.4"></script>
<script type="text/javascript" src="fancybox/helpers/jquery.fancybox-media.js?v=1.0.5"></script>
<link rel="stylesheet" type="text/css" href="fancybox/jquery.fancybox.css?v=2.1.4" media="screen" />

我只是无法让它工作,我不知道为什么。我觉得我丢失了一些文件左右。

4

1 回答 1

2

好吧, JFK(我)的这篇文章已经有一年多了,所以接受的答案可能会被最新版本的 fancybox 否决,所以你现在应该忘记它。

您需要的唯一 css 与您在帖子开头提到的小提琴中的相同:

.fancybox-nav {
    width: 60px;       
}

.fancybox-nav span {
    visibility: visible;
}

.fancybox-next {
    right: -60px;
}

.fancybox-prev {
    left: -60px;
}

...然后,您的 jQuery 代码不需要这些行,因此您可以删除它们

overlay : {
    css: { 'overflow-y': 'hidden' }
}
beforeShow : function(){
    $("body").css("overflow", "hidden"); // hide body scrollbar
},
afterClose: function(){
    $("body").css("overflow", "scroll"); // show body scrollbar
}

...因为这已经由 fancybox v2.1.4 处理

最后,既然你说I would like to have navigation buttons (next and previous buttons beside the overlay),那么在你的代码中有这个选项是没有意义的,

arrows: false

...可以?所以也删除它。见工作JSFIDDLE

于 2013-04-06T22:28:32.430 回答