在其他元素悬停时开始/暂停 HTML5 视频
Start/Pause HTML5 Video When Other Element Hovered
只是试图在另一个"叠加"div悬停时播放视频。关于这个问题的一些背景,我在页面上有几个视频,当悬停时,它们会播放。
一切正常,直到我添加了一个位于视频上方的div。一旦我在视频顶部添加了第二个"叠加"div,下面的代码就不再有效,因为从技术上讲,我不再将鼠标悬停在视频上。
我正在使用视频顶部的叠加div 来放置一些有关它的信息。
<script type="text/javascript">
var figure = $('.movies');
var vid = $("video");
var cover = $(".video-overlay");
[].forEach.call(vid, function (item) {
item.addEventListener('mouseover', hoverVideo, false);
item.addEventListener('mouseout', hideVideo, false);
});
function hoverVideo(e) {
this.play();
}
function hideVideo(e) {
this.pause();
}
</script>
我怎样才能将其调整为"如果将鼠标悬停在div 类 .video-overlay 上,请启动视频。如果没有悬停,请暂停。
javascript 中的解决方案:
var vid = document.getElementById("myVideo");
function playVid() {
vid.play();
}
function pauseVid() {
vid.pause();
}
然后,在jQuery中,我会这样做:
$('.myHoveredElement').hover(function(){
// This will happen when the .myHoveredElement is hovered
vid.play();
}, function(){
// This will happen when the .myHoveredElement is not hovered anymore (mouseleave)
vid.pause();
});
这是jQuery悬停元素的文档
如果您希望它适用于每个具有悬停元素的视频,则必须为每个视频的容器提供一个类,其中包含要在悬停时做出反应的叠加层。例如,您的 html 将如下所示:
<div class="video-container">
<video ...>
</video>
<div class="video-overlay"></div>
</div>
然后,你会做这样的事情:
$('.video-container').hover(function(){
//Happens when you're hover (mouseenter)
$(this).children('video').get(0).play();
}, function(){
// Happens when mouse leaves the video container
$(this).children('video').get(0).stop();
})
这样,当您将鼠标悬停在具有名为 .video-container 的容器的任何视频时,它将起作用。
希望它能回答你的问题
相关文章:
- HTML5画布-暂停时的运行时间
- 我的HTML5游戏不时暂停,我如何才能知道它是否's是由垃圾收集引起的
- 用angular js在屏幕上点击播放和暂停html5视频
- 在 html5 中使用暂停和播放按钮
- 删除对HTML5视频标签的控件(播放,暂停等)
- 暂停HTML5视频,如果它是使用空格键像youtube互动
- 在屏幕尺寸上播放/暂停HTML5视频
- 随机暂停HTML5视频播放器
- 播放暂停 HTML5 视频 JavaScript
- 在其他元素悬停时开始/暂停 HTML5 视频
- 如何使用JavaScript暂停HTML5视频播放器
- 当按空格键时,暂停HTML5视频
- 如何在父iframe中暂停html5音频,该功能来自子框架
- 暂停html5视频点击无处不在
- 暂停HTML5视频播放器点击
- 我如何用JavaScript暂停HTML5视频
- 当滚动开始时暂停html5视频
- 在IOS设备上暂停(html5) youtube视频
- 暂停HTML5视频时,离开了视野
- jQuery全局播放和暂停HTML5音频