javascript - 有没有办法让 HTML5 视频在视频中的特定点显示一个 div?
问题描述
例如,我希望在 HTML5 视频到达某个点时出现一个弹出窗口;视频第 34 秒...
我在 div 中有弹出窗口,我只需要找到一种方法使其仅在视频达到特定时间标记后才出现。我不能只知道用户在页面上停留的时间……(这使它有点困难……!)它必须来自播放的视频。
这有可能吗?
<video class="fs-video" preload="auto" >
<source class="fs-video" src="videos/scene1_option1a.mp4" type="video/mp4" >
</video>
谢谢!
解决方案
使用在视频进度时运行的 timeupdate 事件。但它会在每次更新时触发,以便解决维护标志并检查是否已显示弹出窗口
这是一个 6 秒的演示
var popupShown = false
var vid = document.getElementById("myVideo");
vid.addEventListener('timeupdate', function(e) {
if ((e.target.currentTime > 6) && !popupShown) {
$('#myModal').modal('show');
popupShown = true;
}
});
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<body>
<video class="fs-video" preload="auto" id="myVideo" controls>
<source class="fs-video" src="https://www.w3schools.com/tags/mov_bbb.mp4" type="video/mp4" >
</video>
<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<p>Video is at 6 seconds.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</body>
</html>
推荐阅读
- traefik - Traefik 2.2 http 到 https 重定向
- c# - C#将目录中每个文件的MD5以及所有嵌套/子/子目录中的文件保存到文本文件
- node.js - 无法从 node.js 上托管的网站向 Google Dialogflow 发送多条消息
- node.js - 添加“类型”后仍然“错误[ERR_MODULE_NOT_FOUND]:找不到模块”:“模块”
- python - 在子类的另一个方法中调用超类的方法
- sdl-2 - SDL_RenderPresent() 实现
- java - 可变数量的输入 - Java
- javascript - 反正有没有简化这个Javascript代码
- python - 将字典分配给类对象
- sqlite - 进行左连接时,我如何从右表中获取值