【问题标题】:When clicked on icon image (Background Video playing), play the video in popup from where it is clicked单击图标图像(背景视频播放)时,从单击的位置在弹出窗口中播放视频
【发布时间】:2019-12-27 10:04:50
【问题描述】:

正在播放背景视频。单击播放图标时,视频应在弹出窗口中开始播放。但是视频应该从被点击的时间和地点开始连续播放。

https://jsfiddle.net/Pavankumar_Kori/t1wupLmv/10/

例子:

如果点击播放,背景视频正在播放(自动播放)-

$( document ).ready(function() {
  $('#headerVideoLink').magnificPopup({
    type:'inline',
    midClick: true // Allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source in href.
  });
}); 
@charset "utf-8";
/* CSS Document */

#videoContainer {
  position: absolute;
  min-height: 25rem;
  width: 100%;
  overflow: hidden;
}

#videoContainer video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  height: auto;
  min-width: 100%;
  min-height: 100%;
  z-index: 0;
  -ms-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -webkit-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}

#videoContainer .position {
  position: absolute;
  z-index: 2;
}

#videoContainer .overlay {
  position: absolute;
  top: 0;
  left: 0;
  background: #000000;
  height: 100%;
  width: 100%;
  opacity: 0.4;
  z-index: 1;
}

#headerPopup{
  width:100%;
  margin:0 auto;
}

#headerPopup video{
  width:100%;
  margin:0 auto;
}

.mfp-close-btn-in .mfp-close {
  color: #fff;
  opacity: 1;
}
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.0.0/jquery.magnific-popup.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.slim.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.0.0/magnific-popup.min.css" rel="stylesheet"/>
<link
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<section id="videoContainer">
  <div class="overlay"></div>
  <video playsinline="playsinline" autoplay="autoplay" muted="muted" loop="loop">
    <source src="https://videos.dailymail.co.uk/video/mol/2015/10/21/404258251173707140/1024x576_404258251173707140.mp4" type="video/mp4">
  </video>
  <div class="container-fluid position h-100">
    <div class="d-flex h-100 text-center align-items-center">
      <div class="w-100">
        <a href="#headerPopup" id="headerVideoLink" target="_blank"><img src="https://image.flaticon.com/icons/png/512/0/375.png" alt="Smiley face" height="80" width="80"></a>
      </div>
    </div>
  </div>
  <div id="headerPopup" class="mfp-hide embed-responsive embed-responsive-21by9">
    <video playsinline="playsinline" autoplay="autoplay" controls="controls" muted="muted" loop="loop">
      <source src="https://videos.dailymail.co.uk/video/mol/2015/10/21/404258251173707140/1024x576_404258251173707140.mp4" type="video/mp4">
    </video>
  </div>
</section>

x 秒/分钟的图标。在 Popup 中,它应该从 x secs/mins 开始连续播放

【问题讨论】:

  • 是否要将背景视频的确切时间更新为弹出视频?我的意思是你想在当前播放背景视频的时间播放弹出视频?
  • 是的。同时。想想如果我点击 30 秒。在弹出的视频应该从 30 秒开始。不是从 0 秒开始
  • 您可以使用 `currentTime' javascript 函数更新弹出视频时间。我已经发布了我的答案。请检查。

标签: javascript jquery css popup html5-video


【解决方案1】:

您可以在放大的弹出窗口中使用回调函数...然后使用简单的javascript将背景视频的currentTime更新为弹出视频。

这里是演示

$( document ).ready(function() {
  $('#headerVideoLink').magnificPopup({
    type:'inline',
    midClick: true, // Allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source in href.
    callbacks: {
      elementParse: function(item) {
        var bannerVid = $('#videoContainer').children('video')[0].currentTime;
        $('#videoContainer').children('video')[0].pause();
        $('#headerPopup').children('video')[0].currentTime = bannerVid;
        $('#headerPopup').children('video')[0].play();
      },
      close: function(){
        var vidTime = $('#headerPopup').children('video')[0].currentTime;
        $('#headerPopup').children('video')[0].pause();
        $('#videoContainer').children('video')[0].currentTime = vidTime;
        $('#videoContainer').children('video')[0].play();
      }
    }
  });
});
@charset "utf-8";
/* CSS Document */

#videoContainer {
  position: absolute;
  min-height: 25rem;
  width: 100%;
  overflow: hidden;
}

#videoContainer video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  height: auto;
  min-width: 100%;
  min-height: 100%;
  z-index: 0;
  -ms-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -webkit-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}

#videoContainer .position {
  position: absolute;
  z-index: 2;
}

#videoContainer .overlay {
  position: absolute;
  top: 0;
  left: 0;
  background: #000000;
  height: 100%;
  width: 100%;
  opacity: 0.4;
  z-index: 1;
}

#headerPopup{
  width:100%;
  margin:0 auto;
}

#headerPopup video{
  width:100%;
  margin:0 auto;
}

.mfp-close-btn-in .mfp-close {
  color: #fff;
  opacity: 1;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link href="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.0.0/magnific-popup.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.slim.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.0.0/jquery.magnific-popup.min.js"></script>

<section id="videoContainer">
  <div class="overlay"></div>
  <video playsinline="playsinline" autoplay="autoplay" muted="muted" loop="loop">
    <source src="https://videos.dailymail.co.uk/video/mol/2015/10/21/404258251173707140/1024x576_404258251173707140.mp4" type="video/mp4">
  </video>
  <div class="container-fluid position h-100">
    <div class="d-flex h-100 text-center align-items-center">
      <div class="w-100">
        <a href="#headerPopup" id="headerVideoLink" target="_blank"><img src="https://image.flaticon.com/icons/png/512/0/375.png" alt="Smiley face" height="80" width="80"></a>
      </div>
    </div>
  </div>
  <div id="headerPopup" class="mfp-hide embed-responsive embed-responsive-21by9">
    <video playsinline="playsinline" autoplay="autoplay" controls="controls" muted="muted" loop="loop">
      <source src="https://videos.dailymail.co.uk/video/mol/2015/10/21/404258251173707140/1024x576_404258251173707140.mp4" type="video/mp4">
    </video>
  </div>
</section>

【讨论】:

  • Tq @Asfan Shaikh .. 但视频正在后台播放。它应该停止在后台播放
  • 您可以使用一些 javascript 视频事件来切换计时和播放/暂停事件。
  • 好的。我会努力的
  • 我刚刚编辑了我的答案。检查它是否按预期工作。
  • @PavankumarKori 欢迎 :) 如果回答有帮助,请点赞。
猜你喜欢
  • 2013-05-13
  • 2017-11-05
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 1970-01-01
  • 2017-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多