【问题标题】:Appying Javascript dynamically to videos within a slick.js Slider将 Javascript 动态应用于 slick.js 滑块中的视频
【发布时间】:2015-07-21 12:40:30
【问题描述】:

Fiddle Here

是否可以让 javascript 暂停包含视频的幻灯片,以便该视频在特定幻灯片 #N 上播放到完成,而不是应用于任何包含 <video> 的幻灯片?

我目前有此代码在此示例中达到 #5 时暂停幻灯片:

            $('.sliderMain').on('afterChange', function(event, slick, currentSlide){
          if (currentSlide == 5) {
          $('.sliderMain').slick('slickPause');
          theVideo.play();

这段代码在视频播放完毕后恢复幻灯片:

document.getElementById('theVideo').addEventListener('ended',myHandler,false);
                function myHandler(e) {
                 $('.sliderMain').slick('slickPlay');
                }
            }
            });

我想做的是在我的滑块中包含更多视频,并让滑块在每个视频处暂停以播放视频,而不是像这里那样只在特定幻灯片上播放:

if (currentSlide == 5) {

幻灯片 6 有一个视频,但不包含在例如上面的代码中。例如,我宁愿让代码检测幻灯片是否有视频类。 这是this question.的延续@

【问题讨论】:

  • 不确定要求。你能再解释一下吗?
  • 我更新了我的问题。感谢您的帮助。
  • 请清楚地解释要求...您的示例代码看起来不完整
  • 我已经更新了小提琴来展示另一个例子。如果不够干净,我深表歉意。

标签: javascript jquery video slideshow slick.js


【解决方案1】:

而不是

if (currentSlide == 5)

您可以在每张幻灯片上添加一个递增的类,并检查此 if 中的内容。 html 将如下所示:

            <div class="slide1"><img src="http://placehold.it/900x500"></div>
        <div class="slide2"><img src="http://placehold.it/900x500"></div>
        <div class="slide3"><img src="http://placehold.it/900x500"></div>
        <div class="slide4"><img src="http://placehold.it/900x500"></div>
        <div class="slide5"><img src="http://placehold.it/900x500"></div>

        <div class="slide6" id="slide-video">
            <video width="900px" height="500px" class="theVideo">
                <source src="http://vjs.zencdn.net/v/oceans.mp4" />
            </video>

例如你会这样做:

            $('.sliderMain').on('afterChange', function(event, slick, currentSlide){
          if ($('.slide'+currentSlide+ ' video').length != 0){
            $('.sliderMain').slick('slickPause');
            theVideo.play();
          }
        });

然后您可能会知道当前幻灯片中是否有节点视频。

希望这会有所帮助

【讨论】:

  • 我刚刚编辑了我的答案,现在可能更完整了
  • 非常感谢 Nicolas 的帮助!我尝试实施此解决方案,但我相信它现在没有检测到视频标签来暂停滑块。我已经用你的更新更新了我的小提琴。 Fiddle
  • 您忘记了选择器中视频前的空格 $('.slide'+currentSlide+ 'video')
  • 顺便说一句,您需要动态定义视频,就像我们对行 document.getElementById('theVideo').addEventListener('ended',myHandler,false); 的 div 所做的那样我建议您循环上课并在找到的每个视频上添加事件侦听器
  • 我想我只是没有跟随,因为当滑块到达具有您演示的定义类的视频幻灯片时,它不会暂停。感谢您的帮助和对解决方案的指导。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多