微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有自动播放视频的 Cycle2 滑块

如何解决带有自动播放视频的 Cycle2 滑块

我希望创建一个包含视频和图片的滑块。我使用 Cycle2 作为基本代码。到目前为止,我已经能够使用此处提供的代码来获得包含图像和视频的基本滑块:https://www.minddevelopmentanddesign.com/blog/create-a-responsive-youtube-video-slider/

这是上面链接中找到的最终结果的codepen: https://codepen.io/AndrewGehman/pen/WZJVba

我的问题是,有没有什么办法可以在到达视频幻灯片自动播放视频?我猜您必须结合使用此处找到的 Cycle2 API:https://jquery.malsup.com/cycle2/api/ 和此处找到的 YouTube API:https://developers.google.com/youtube/iframe_api_reference

我对这些东西完全是个菜鸟,只是浏览 API 信息让我不知所措。有什么想法吗?

HTML

<div class="page-wrapper">
  <div id="slider" class="cycle-slideshow" data-cycle-timeout="6000" data-cycle-fx="scrollHorz" data-cycle-slides=">.slide">
    <!-- slide -->
    <div class="slide">
      <img src="http://via.placeholder.com/1600x650" width="600" height="650" class="slide-image" alt="">
    </div>
    <!-- slide -->

    <div class="slide">
        <div class="video-wrap">
          <iframe id="player" width="560" height="315" src="https://www.youtube.com/embed/Lscb4SL58X4?enablejsapi=1" frameborder="0" allowfullscreen></iframe>
      </div>
    </div>
    <!-- slide -->

  </div>
  <!-- slider -->

</div>
<!-- page-wrapper -->

CSS

.page-wrapper {
  max-width: 1600px;
  margin: 0 auto;
}

#slider {
  width: 100%;
  margin: 0;
  border: 0;
}
#slider .slide {
  width: 100%;
  display: none;
  position: relative;
}
#slider .slide:first-child {
  display: block;
}
#slider .slide img {
  width: 100%;
}

.video-wrap {
  position: relative;
  padding-bottom: 40.625%;
  height: 0;
  overflow: hidden;
}

.video-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

JS

var player
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('player',{
      events: {
        'onStateChange': onPlayerStateChange,}
    });
  }

  function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
      $('#slider').cycle('pause');
    }
    if (event.data == YT.PlayerState.ENDED){
      $('#slider').cycle('resume');
    }
  }
  function stopVideo() {
    player.stopVideo();
  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。