将 Play Toggle 与视频播放器连接起来

Connecting Play Toggle with Video players

对于一个客户,我正在考虑主页上带有自定义元素的视频播放器。我想将这些自定义按钮连接到我的视频播放器。例如,如果单击播放按钮,则开始播放视频。否则暂停视频。

我在下面用 // 评论了我的想法。也许这样的事情会奏效。

到目前为止我尝试了好几样东西,最后就是这个,但是到目前为止我还没有成功。也许你们中的一个可以帮助我?

如有任何帮助,我们将不胜感激!

$('video').each(function (index) {
    //var $(this) = videoplayer
    $('.play-toggle').click(function () {
        if ($(this).hasClass('playvideo')) { //&& var.paused
            //var.play()
            console.log($(this))
            $(this).removeClass('playvideo');
            $(this).find('.play').css({
                "visibility": "hidden",
            });
            $(this).find('.pause').css({
                "visibility": "visible",
            });
        } else {
            $(this).addClass('playvideo');
            //var.pause()
            $(this).find('.play').css({
                "visibility": "visible",
            });
            $(this).find('.pause').css({
                "visibility": "hidden",
            });
        }
    });
});

考虑以下示例。

$('video').each(function(i, el) {
  var p = $(el).parent();
  $('.play-toggle', p).click(function(e) {
    var button = $(this);
    console.log(button[0]);
    if (button.hasClass('playvideo')) {
      button.removeClass('playvideo');
      $('.play', button).hide();
      $('.pause', button).show();
      el.play();
      console.log($(el).attr("id") + " is playing.");
    } else {
      button.addClass('playvideo');
      $('.play', button).show();
      $('.pause', button).hide();
      el.pause();
      console.log($(el).attr("id") + " is paused.")
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="video-player">
  <video id="video1" width="420" style="border: 1px solid #000; background-color: #222;">
    <source src="mov_bbb.mp4" type="video/mp4">
    <source src="mov_bbb.ogg" type="video/ogg">
    Your browser does not support HTML video.
  </video>
  <div class="controls">
    <button class="play-toggle playvideo">
    <span class="play">Play</span>
    <span class="pause" style="display: none;">Pause</span>
    </button>
  </div>
</div>

我切换到 .show()/.hide() 因为这比更改 visible 更容易使用。 .each() 接受两个参数,indexelement。在绑定函数时同时使用两者会容易得多。