如何在 Vimeo 全屏视频上叠加 HTML 测验(Quiz)组件

发布时间 - 2026-01-11 00:00:00    点击率:

本文详解如何让自定义 html 测验元素(如 #affiche)在 vimeo 视频进入原生全屏模式后仍能正确显示于视频上方,解决因 iframe 沙箱隔离与 vimeo 全屏 dom 重构导致的 z-index 失效问题。

在嵌入 Vimeo 视频时,通过 CSS 定位将 HTML 测验层(如

)叠加在

Un test overlay

Q1: 此刻视频播放到了哪个关键帧?

// 启用自定义全屏
document.getElementById('btnFullScreen').addEventListener('click', () => {
  const container = document.querySelector('.boiteVideo');
  if (container.requestFullscreen) {
    container.requestFullscreen();
  } else if (container.webkitRequestFullscreen) {
    container.webkitRequestFullscreen();
  } else if (container.msRequestFullscreen) {
    container.msRequestFullscreen();
  }
});

// 可选:监听退出全屏事件,恢复布局
document.addEventListener('fullscreenchange', () => {
  if (!document.fullscreenElement) {
    console.log('已退出全屏');
  }
});
.boiteVideo {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%; /* 16:9 */
  overflow: hidden;
}

.boiteVideo iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

#affiche {
  position: absolute;
  top: 200px;
  left: 200px;
  z-index: 1000; /* 在容器内有效即可,无需天文数字 */
  background: rgba(255, 255, 255, 0.9);
  padding: 20px;
  border-radius: 8px;
  max-width: 400px;
}

⚠️ 关键注意事项:

  • pointer-events: auto 必须显式设置在 #affiche 上(默认继承自父容器),否则全屏下可能失焦;
  • Vimeo iframe 的 src 中建议添加 ?controls=0 隐藏原生控件,避免 UI 冲突;
  • 使用 allow="autoplay; fullscreen" 确保权限兼容性;
  • 若需响应式定位(如居中题干),推荐用 transform: translate(-50%, -50%) 配合 left: 50%; top: 50%;
  • 如需与 Vimeo Player.js 同步测验时机,请监听 timeupdate 事件,在指定时间点动态 show()/hide() #affiche。

通过将测验层与视频 iframe 置于同一全屏容器内,你完全绕开了跨 iframe 渲染限制,获得稳定、可控、符合现代 Web 标准的交互式视频测验体验。


# css  # html  # js  # 浏览器  # app  # ai  # 跨域  # overflow  # auto  # 继承  # pointer 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: javascript如何操作浏览器历史记录_怎样实现无刷新导航  Android仿QQ列表左滑删除操作  如何在云虚拟主机上快速搭建个人网站?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  利用JavaScript实现拖拽改变元素大小  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Android自定义listview布局实现上拉加载下拉刷新功能  Java遍历集合的三种方式  Laravel如何生成API文档?(Swagger/OpenAPI教程)  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  如何在万网主机上快速搭建网站?  历史网站制作软件,华为如何找回被删除的网站?  Python进程池调度策略_任务分发说明【指导】  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  简单实现Android文件上传  Python高阶函数应用_函数作为参数说明【指导】  Laravel如何为API生成Swagger或OpenAPI文档  Laravel如何实现文件上传和存储?(本地与S3配置)  文字头像制作网站推荐软件,醒图能自动配文字吗?  原生JS获取元素集合的子元素宽度实例  php485函数参数是什么意思_php485各参数详细说明【介绍】  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何用西部建站助手快速创建专业网站?  Android自定义控件实现温度旋转按钮效果  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何自定义建站之星模板颜色并下载新样式?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  JavaScript如何实现错误处理_try...catch如何捕获异常?  JS去除重复并统计数量的实现方法  如何在腾讯云服务器快速搭建个人网站?  使用Dockerfile构建java web环境  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  海南网站制作公司有哪些,海口网是哪家的?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  微信小程序 五星评分(包括半颗星评分)实例代码  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何快速搭建高效香港服务器网站?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  iOS验证手机号的正则表达式  如何利用DOS批处理实现定时关机操作详解