2014-12-02 75 views
0

我目前在具有自定义控件的页面正文中使用了HTML5视频。其中一个自定义控件是一个POP-OUT按钮,它允许用户将视频弹出到可调整大小的JQuery模式对话窗口中。为了启用所有的自定义控件,我有一个外部JavaScript加载所有的元素和事件处理函数和函数来使自定义控件工作。将HTML5视频复制到jQuery对话框模式窗口中

有没有办法简单地复制视频,到对话窗口,对飞,并被迫重新创建所有的自定义控件代码,这个“新”的视频?

我希望没有像playPause()playPauseModal()这样的功能,但该技术足够聪明,只需使用playPause()即可。

我目前使用jquery-ui来启动模态对话窗口。

+0

取决于你'playPause'代码是如何实现的。张贴你的代码 – 2014-12-02 15:16:16

回答

1

您可以将父母从DOM中分离出来,然后将其重新插入到模式对话框中 - 它不会复制视频,但您可以在模式中随时在后台使用占位符,并在关闭模式窗口时将其移回。

一个简单的例子:

var hasMoved = false; 
 

 
$("#move").on("click", function() { 
 

 
    var parent = $("#parent"); 
 
    var player = $("#player"); // get reference to add and to keep alive 
 

 
    if (hasMoved) { 
 
    $("#modal").remove("#player"); // remove from modal container 
 
    parent.append(player); 
 
    $("#video")[0].play();  // video will stop, continue to play 
 
    hasMoved = false; 
 
    } 
 
    else { 
 
    parent.remove("#player"); // remove player container and all controls inside 
 

 
    $("#modal").append(player); // append to new container 
 
    $("#video")[0].play();  // video will stop, continue to play 
 
    hasMoved = true; 
 
    } 
 
    
 
});
#parent {border:1px solid blue} 
 
#modal {border:1px solid red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="parent"> 
 
    <div id="player"> 
 
    <video id="video" width="500" height="280" preload="auto" autoplay> 
 
    <source src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" type="video/mp4"> 
 
    <source src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.webm" type="video/webm"> 
 
    <source src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.ogv" type="video/ogg"> 
 
    </video> 
 
    <button>Play</button><button>Stop</button> 
 
</div> 
 
</div> 
 
<button id="move">Move --&gt;</button> 
 
<div id="modal"></div>

+0

这个工作充满了想象,但我有一个后有点难度我扭转了这个过程,把视频带回到原来的div。我可以从原来的窗口,然后从窗口回到原来的,但如果我试图再次重复这个过程,我会得到一个** Uncaught NotFoundError:无法执行'节点'上的'removeChild':节点将被删除不是这个节点的孩子**我将播放器放回原来的同一个div。 – Murphy1976 2014-12-02 17:23:50

+0

@ Murphy1976听起来很奇怪..我用移动按钮的切换功能更新了上面的例子。似乎在这里工作得很好,但在你的情况下可能会有一些参考文件阻止了这一点。很难说。看看这个添加的方法是否适合你。 – K3N 2014-12-02 17:29:44

+0

OH ..我甚至没有看到你更新过...让我试试看,我会尽快回复你。 – Murphy1976 2014-12-02 17:35:26