首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何控制在旋转木马中暂停/播放视频?

问如何控制在旋转木马中暂停/播放视频?
EN

Stack Overflow用户
提问于 2016-08-10 00:41:39
回答 1查看 1.3K关注 0票数 0

我有一个使用flickity carousel library创建的视频转盘,见here on codepen。我想要发生的是,当用户滑动旋转木马时,选定的幻灯片停止播放,然后位于选定中间位置的幻灯片开始播放。现在,使用jQuery,我让选定的幻灯片开始播放:

代码语言:javascript
复制
$(document).ready(function () {
       var $partnerSlides = $('.partner-slides').flickity();

       function onLoadeddata(event) {
           var cell = $partnerSlides.flickity('getParentCell', event.target);
                $partnerSlides.flickity('cellSizeChange', cell && cell.element);
       }

       $partnerSlides.find('.slide video').each(function (i, video) {
           video.pause();
           $(video).on('durationchange', onLoadeddata);
       });

       $partnerSlides.find('.slide.is-selected video').each(function (i, video) {
           video.play();
           $(video).on('durationchange', onLoadeddata);
       });

});

但当幻灯片切换位置时,选定的幻灯片只是移动位置并继续播放,而新幻灯片位于中间位置,不播放。

有没有办法在每次轮播幻灯片时更新这些函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-11 21:56:32

实际上,我想出了我认为最好的方法。旋转木马有一个事件'settle.flickity',每次旋转木马滑动或自动播放后,它都会触发(有关flickity events here on flickity的更多信息可以阅读)。因此,这段代码:

代码语言:javascript
复制
var $gallery = $('.partner-slides').flickity(); //this is the carousel

  $gallery.on('settle.flickity', function () {
      console.log('Flickity settled at ' + flkty.selectedIndex);

      $gallery.find('.slide video').each(function (i, video) {
          video.pause();
          $(video).on('loadeddata', onLoadeddata);
      });

      $gallery.find('.slide.is-selected video').each(function (i, video) {
          video.play();
          $(video).on('loadeddata', onLoadeddata);
      });

  });

将播放选定的视频并暂停任何未选定的视频。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38856265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档