我正在使用Fancybox 2.0.6来显示图像和视频。滚动图像/视频(当图库中有多个图像时),Fancybox显示上一个和下一个图标和链接。可点击区域占据图像/视频左侧和右侧的40%,因为它应该根据jquery.fancybox.css。这非常适合图像,但对于视频,它会阻止播放按钮,以便用户转到下一个/上一个视频,而不是播放或暂停视频。我想改变可点击区域的宽度,但仅限于视频 - 我希望它对图像保持不变。我研究了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文件中添加内容或更改任何内容?我错过了什么?
答案 0 :(得分:10)
首先您需要了解当您使用wrapCSS
选项时,新的class
选择器将添加到fancybox wrap(.fancybox-wrap
)中,以便添加选项wrapCSS:'fancybox-nav-video'
意味着当您打开fancybox时,您将获得
<div class="fancybox-wrap fancybox-nav-video ....etc." ....
第二次,您需要为这样的新选择器声明特定的fancybox按钮CSS属性(加载fancybox 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-nav-video
的fancybox包装(我们使用wrapCSS
选项)。这些css会将按钮和可点击区域放在fancybox外面,清除vimeos的播放按钮。因此,我们使导航箭头永久可见,否则访问者将不知道在哪里悬停。
第三次,您只需将所有fancybox自定义脚本包装在一个.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>