如何在Vimeo视频播放结束后自动触发事件关闭外层div
Vimeo 全屏介绍视频层自动关闭实现方案
需求说明
我需要为网站添加全屏宽度的介绍视频层,覆盖在网站原有内容和背景上层。目前已经实现了嵌套Vimeo iframe的视频容器div,也完成了点击即可通过JS关闭该div的「跳过介绍」按钮。
现在还需要实现视频播放结束后自动关闭该div的功能,因此需要监听Vimeo视频的结束事件来触发关闭操作。
我已知晓YouTube API可以实现该需求,但由于Vimeo支持完全隐藏控件、logo等所有元素,因此必须使用Vimeo平台。
更新:功能已生效,感谢大家的帮助,有类似需求的开发者可以参考如下代码:
HTML 代码
<div id="videointro"> <iframe src="https://player.vimeo.com/video/xxxxxxxxx?title=0&byline=0&portrait=0&transparent=0&autoplay=1&sidedock=0&controls=0" frameborder="0" title="Funny Cat Videos For Kids" webkitallowfullscreen mozallowfullscreen allowfullscreen data-ready="true"></iframe> </div> <button id="btn">跳过介绍</button> <!-- 引入Vimeo官方播放器SDK --> <script src="https://player.vimeo.com/api/player.js"></script> <script type="text/javascript" src="video.js"></script>
JS 逻辑代码
// 跳过按钮点击关闭逻辑 btn.onclick = function () { document.getElementById("videointro").style.display = 'none'; }; // 初始化Vimeo播放器实例 var iframe = document.querySelector('iframe'); var player = new Vimeo.Player(iframe); // 播放事件监听(调试用可删除) player.on('play', function() { console.log('Played the video'); }); // 获取视频标题(调试用可删除) player.getVideoTitle().then(function(title) { console.log('title:', title); }); // 核心:监听播放结束事件 player.on('ended', function() { console.log('视频播放结束'); player.destroy(); // 关闭全屏视频层,原示例漏写可自行添加 document.getElementById("videointro").style.display = 'none'; });
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

