我需要在我的网页上显示一个“视频”链接,当点击它时,会打开一个fancybox图库,其中显示的是第一个或多个视频。有没有人有如何做到这一点的例子?
This stackoverflow post清楚地解释了如何使用一个Youtube视频打开一个窗口。我想打开一个带有“下一个”和“后退”按钮的图库,以便在视频之间导航。
以下是我必须使用iFrame打开一个div的代码。我显然需要更新包含视频的div的“id”以使用“class”,这样我就可以有倍数。但我不知道如何更改href然后知道要加载什么。将其更改为“.myVid”不起作用。
$("a#myTest").fancybox({
'transitionIn': 'elastic',
'transitionOut': 'elastic',
'speedIn': 600,
'speedOut': 200,
'overlayShow': false,
'type': 'inline'
});
<a id="myTest" href="#myVid" rel="group1">display video gallery</a>
<div style="display:none">
<div id="myVid" rel="group1" style="height: 400px;" ><iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/9QrFa3tDwvY" frameborder="0" allowfullscreen="true"></iframe></div></div>
这是Fancybox网站的示例,显示了如何使用rel属性对项目进行分组。但是他们的示例仅显示如何对页面上已经可见的内容进行分组,以及用于启动幻灯片放映的链接是幻灯片放映中的项目之一。我想要一个单独的链接来启动我的。
$("a.grouped_elements").fancybox();
<a class="grouped_elements" rel="group1" href="Image1.jpg"><img src="Image1.jpg" height="20" width="20" alt=""/></a>
<a class="grouped_elements" rel="group1" href="Image2.jpg"><img src="Image2.jpg" height="20" width="20" alt=""/></a>
这是“几乎”有效的另一个例子。虽然问题在于它想要打开的图库中的第一个项目是空白的......因为它是打开图库的超链接的项目。
<a class="video_elements" rel="shadowbox">launch videos</a>
<div style="display:none">
<a href="http://www.youtube.com/v/znyMx58fZqQ" class="video_elements" rel="shadowbox">video link </a>
<a href="http://www.youtube.com/v/znyMx58fZqQ" class="video_elements" rel="shadowbox">video link </a></div>
<script type="text/javascript">
$("a.video_elements").fancybox({
'transitionIn' : 'fade',
'transitionOut' : 'fade',
'titlePosition' : 'inside',
'autoscale' : 'true',
'type' : 'swf'
});
感谢。
答案 0 :(得分:0)
这个会对你有用,但不会对youtube视频进行分组。
$(document).ready(function(){
$('a.video_elements').click(function(event){
event.preventDefault();
$.fancybox({
'titleShow' : false,
'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
'type' : 'swf',
'swf' : {'wmode':'transparent','allowfullscreen':'true'}
});
});
});
但您可以通过fancybox的“onComplete”选项手动执行此操作。 这是一个很贴的例子:
'onComplete' : function() {
$("#fancybox-wrap").hover(function() {
$("#fancybox-left").show();
$("#fancybox-right").show();
}, function() {
$("#fancybox-left").hide();
$("#fancybox-right").hide();
});
}