javascript - 当我全屏显示一个 div 时,如何确保其中的对象也全屏显示?

标签 javascript html css

我正在尝试全屏显示 Flash 游戏,我制作了一个按钮,使容器 div 全屏显示。但是,div 内的 flash 游戏不会随 div 全屏显示,而是填满屏幕的左上角。如何让 Flash 游戏在扩展到全屏模式时跟随 div?

我尝试在 CSS 的 .ob 部分使用 object-fit contain 和 cover。

我有一个 div:

        <div id="gamebox">
            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 


codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab    #version=5,0,0,0" >
            <param name=movie value="adrenaline.swf">
            <param name=quality value=high>
            <param name="menu" value="false">
            <embed src="Flash/adrenaline.swf" quality=high menu="false" 
                pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?    P1_Prod_Version=ShockwaveFlash" 
            type="application/x-shockwave-flash" width="550"     height="400"> </embed></object>
        </div>

使用以下代码变成全屏:

<script type="text/javascript">
      function goFullscreen(id) {
        var element = document.getElementById(id);
        if (element.mozRequestFullScreen) {
          element.mozRequestFullScreen();
        } else if (element.webkitRequestFullScreen) {
          element.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
        } else if (element.msRequestFullscreen) {
          element.msRequestFullscreen();
        }
      }
    </script>

使用以下按钮:

 <button onclick="goFullscreen('gamebox'); return false">Fullscreen     Mode</button>

我的游戏盒有以下 CSS:

#gamebox {
    display: table;
    margin: 0 auto;
    }

然而,当我全屏显示 div 时,游戏本身只占据左上角,并没有用 div 填满屏幕。

我当然期待全屏体验,但我只有屏幕的左上角可以玩。全屏功能有效,但仅适用于 div,不适用于对象。

最佳答案

您必须为父级 div 提供 swf 内容一些初始尺寸,例如Flash 影片的实际尺寸。 现在在对象和嵌入标签的属性中,将宽度/高度设置为 100%。这将确保 swf 始终根据其父项按比例缩放。

<div id="gamebox" style="width:550px;height:400px">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
  id="adrenaline" width="100%" height="100%">
  <param name="movie" value="adrenaline.swf">
  <param name="bgcolor" value="#000000">
  <param name="quality" value="high">
  <embed type="application/x-shockwave-flash"
   pluginspage="http://www.macromedia.com/go/getflashplayer"
   width="100%" height="100%"
   name="adrenaline" src="adrenaline.swf"
   bgcolor="#000000" quality="high"
  ></embed>
</object>
</div>
<button onclick="goFullscreen('gamebox'); return false">Fullscreen     Mode</button>

Flash 提供了一个额外的属性来控制影片的缩放方式:scale。 如果它不存在,则使用默认的 "showall" 来保持电影的纵横比。 “exactfit” 另一方面会延伸到整个容器。

关于javascript - 当我全屏显示一个 div 时,如何确保其中的对象也全屏显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56797142/

相关文章:

javascript - SVG 路径绘制和图像填充

html - 本地文件打开IE

html - 右侧的两个 div 标签相互覆盖

javascript - 使用 "if"语句通过 JS 应用 CSS

jquery - 使用 jQuery UI 和 html2canvas 插件的问题

css - 如何使用 Font Awesome 字体实现基本的共享社交按钮?

javascript - 插件 DataTables jquery : how display formated Date?

javascript - 如何将 JavaScript 对象转换为数组

javascript - 每隔几秒刷新一次外部网页

javascript - 从生成的 html 表中选择一行