【问题标题】:video.js size to fit divvideo.js 大小以适合 div
【发布时间】:2013-08-12 17:32:00
【问题描述】:

我在div 中有一个video,宽度为40%。在 html 中,width="100%" height="auto" 使视频消失。以像素为单位设置特定大小不适合div。将 html 留空会使视频大小错误,并且两侧有黑条。

我已经尝试过大多数其他帖子中的建议,但似乎无法让它发挥作用。

<div id="box"><video id="trialvid" class="video-js vjs-default-skin"
  controls preload="auto" width="auto" height="auto" poster="images/reelthumbnail.jpg"
  data-setup='{"example_option":true}'>
 <source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4' />
 <source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm' />
 <source src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg' />
</video>
</div>

【问题讨论】:

  • 你试过了吗:$(this).css({ "width":""+$(this).closest('div').width()+"px", "height" :""+$(this).closest('div').height()+"px" });视频加载时在 Jquery 中?顺便问一下,你能显示你的 HTML 吗?
  • 请将代码放入问题中,以便人们了解您在写什么。

标签: percentage video.js


【解决方案1】:

在 videojs 的第 5 版中,您可以在视频对象上使用 vjs-16-9 vjs-4-3 类,

<video class="video-js vjs-default-skin vjs-16-9" ...>
...
</video>

或使用fluid 选项

<video class="video-js vjs-default-skin" data-setup='{"fluid": true}' ...>
...
</video>

来源:https://coolestguidesontheplanet.com/videodrome/videojs/

【讨论】:

  • 这正是我想要的(流体选项)。谢谢!
  • 流畅的作品,但引号。您不能在 JSON 中使用 ' (单引号),只能使用 " (双引号)。这必须完全类似:'{"fluid": true}'
  • 您现在还可以在视频元素中使用vjs-fluid 选项,而不会产生混乱
【解决方案2】:

你必须使用丑陋的 !important 来覆盖视频的默认绝对定位:

.video-js {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
}

完成后,海报图像将显示在视频之后,而不是在其上方,因此您必须使用以下方法修复它:

.vjs-poster {
    position: absolute !important;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
}

请注意,它必须与您希望它良好显示的视频具有相同的比例。

【讨论】:

  • 像魅力一样工作,我只需要将它不仅添加到 .video-js 中,还添加到 .video-js .vjs-tech ...问候 Stefan
  • 如何使用Player#width() 或Player#height() 如下所示:docs.videojs.com/tutorial-skins.html?
  • 您可以添加height: 100vh !important; 使其适合整个屏幕,然后将其嵌入到 iframe 中。
【解决方案3】:

在视频标签的 HTML 中将宽度和高度设置为自动。然后使用 CSS 将视频 ID 的宽度/高度设置为 100%。

将 width 和 height 属性设置为 auto 使播放器像 div 一样工作,默认情况下没有尺寸。

【讨论】:

  • 还是没有运气。播放器不会显示海报图像,当我点击播放按钮时,视频播放时完全没有图像,只有音频和播放器控制栏。
  • vjs.zencdn.net/4.1/video-js.css" rel="stylesheet ">
【解决方案4】:

这是我用来解决此问题的方法。首先删除视频对象上的任何大小声明。

将包含元素的位置属性设置为相对。

.video_container {
  position: relative;
}

将海报图片添加到包含元素,并将其宽度设置为 100%,将高度设置为自动。这将强制 div 将自身垂直调整为海报图像的高度(如果你做得对,它应该与你的视频大小相同)

.video_container img.poster {
  width: 100%;
  height: auto;
  position: relative;
  z-index: 10;
}

现在将 .video-js 的位置设置为绝对,并将其高度和宽度设置为 100%。这将导致 .video-js 将自身缩放到海报图像的高度和宽度,海报图像将自身适当地缩放到包含的 div。

.video_container .video-js {
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 110;
}

如果您使用 Zencoder 等服务从视频中动态获取缩略图以生成缩略图并允许用户上传视频,这将确保您的视频始终正确缩放,因为您可以从图像中获取按比例缩放的尺寸垂直。

【讨论】:

    【解决方案5】:
      video[poster]{
        object-fit: fill;
    }
    

    为我做的

    【讨论】:

      【解决方案6】:

      刚刚发现这个: http://jsbin.com/idinaf/4/edit 从这里http://daverupert.com/2012/05/making-video-js-fluid-for-rwd/

      希望这对某人有所帮助。

      编辑:IMO 你应该用一些简单的 CSS 试试这个:

      width: 100% !important;
      height: auto !important;
      

      【讨论】:

        猜你喜欢
        • 2015-11-13
        • 1970-01-01
        • 2015-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-21
        • 2014-02-02
        • 1970-01-01
        相关资源
        最近更新 更多