【发布时间】:2012-08-11 23:02:27
【问题描述】:
我希望有人可以提供帮助。我已经搜索并搜索了一个解决方案,并且我已经使用了 Javascript,但它只是超出了我的范围。我希望其他人能理解这一点。
FlexSlider 作为旋转木马做得很好,但如果你想要多个视频,我无法让它们停止 FlexSlider 动画,或者在用户触发下一个旋转木马幻灯片时自动停止播放。
用一个很容易做到。以下 Javascript 显示了这是如何完成的。但正如您所见,它依赖于具有 ID 的元素。问题是我的视频数量未知。有时可能有一个。有时可能有 20 个。
如果有什么方法可以修改下面的代码,让它可以处理任意数量的视频?
var player = document.getElementById('player_1');
$f(player).addEvent('ready', ready);
function addEvent(element, eventName, callback) {
if (element.addEventListener) {
element.addEventListener(eventName, callback, false)
} else {
element.attachEvent(eventName, callback, false);
}
}
function ready(player_id) {
var froogaloop = $f(player_id);
froogaloop.addEvent('play', function(data) {
$('.flexslider').flexslider("pause");
});
froogaloop.addEvent('pause', function(data) {
$('.flexslider').flexslider("play");
});
}
$(".flexslider").flexslider({
animation: "slide",
animationSpeed: Modernizr.touch ? 600 : 1000,
slideshowSpeed: 3500,
controlsContainer: "#carousel",
useCSS: false,
start: function(){
$(".flex-control-nav").css("margin-left", "-" + $(".flex-control-nav").width()/2 + "px");
},
before: function(slider){
$f(player).api('pause');
}
});
PHP/HTML 如下所示:
<div class="flexslider">
<ul class="slides">
<?php for($i=0;$i<$slideCount;$i++) { ?>
<li>
<?php if($slides[$i]["type"] == "1") { ?>
<div class="video">
<iframe id="player_1" width="1000" height="500" frameborder="0" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen src="http://player.vimeo.com/video/<?php echo $slides[$i]["URL"]; ?>?api=1&player_id=player_1"></iframe>
</div>
<?php } else { ?>
<a href="explore.php?item=<?php echo $slides[$i]["slideID"]; ?>">
<img src="static/images/slides/<?php echo $slides[$i]["slideID"]; ?>/<?php echo $slides[$i]["URL"]; ?>" alt="<?php echo htmlspecialchars($slides[$i]["headline"], ENT_QUOTES, "UTF-8"); ?>" width="868" height="488" /></a>
<?php } ?>
< /li>
</ul>
</div>
可能的解决方案: 运行 FOR 循环并计算视频的数量,然后在 Javascript 中创建多个不同的 $f(player) 实例。有没有更好的办法?
【问题讨论】:
-
我即将踏上类似的旅程。现在是 3-4 个月后有什么答案吗?
-
遗憾的是没有。我想我们最终改变了它。问题是给每个视频自己的参考。如果您知道您将拥有多少个视频,这很简单!
标签: php javascript vimeo flexslider froogaloop