【问题标题】:Is there a way to overlay a <canvas> over a fullscreen HTML5 <video>?有没有办法将 <canvas> 覆盖在全屏 HTML5 <video> 上?
【发布时间】:2012-02-27 07:35:41
【问题描述】:

我正在使用videojs播放视频,并且我已经对视频内容逐帧进行了一些操作,并将其显示在&lt;canvas&gt;(ID:'display')中。

视频播放时,&lt;canvas&gt; 可以显示在&lt;video&gt; 前面,css 如下。

<style type="text/css">
    canvas#display {
        z-index: 1;
        postion: relative;
        top: some-video-height-px;
    }

    video#videoDiv_html5_api {
        z-index: -2;
    }

    div.vjs-controls {
        z-index: 3;
    }

</style>

&lt;video&gt; 进入全屏模式时,z-index 属性似乎不起作用。 它保持在前面,&lt;canvas&gt; 不能覆盖&lt;video&gt;


在 W3C 文档中 https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#ui

我们有

:fullscreen {
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  z-index:2147483647;
  box-sizing:border-box;
  margin:0;
  width:100%;
  height:100%;
}

好像z-index已经设置为Integer.MAX_VALUE...

【问题讨论】:

    标签: javascript html z-index fullscreen html5-video


    【解决方案1】:

    我自己找到答案。您只需将canvas.style.z-index 设置为2147483647,然后将覆盖

    【讨论】:

    • 我很好奇您在这里使用的是哪个网络浏览器。此解决方案不适用于 Safari,因为全屏模式会启动本机视频播放客户端,该客户端会隐藏 Web 浏览器,从而取代浏览器中的所有元素,而不管 z-index 值如何。
    • 嗯...您是使用原始的 webkitEnterFullscreen 方法来实现全屏模式还是更新的“正确”的 webkitRequestFullScreen?
    • 我使用的是在 Windows 上运行的 Chrome。在 mac 上,应该根据我在 iOS 上的经验调用 quicktime。我不知道我使用的是什么版本的方法...
    猜你喜欢
    • 2016-11-20
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2011-11-26
    • 2018-10-05
    相关资源
    最近更新 更多