【发布时间】:2015-04-24 23:00:46
【问题描述】:
当视频宽度较窄时,页面右下角的VideoJS控件(如CC、音频等)出现在视频元素下方。这可以通过缩小浏览器窗口并将鼠标悬停在视频上以查看控件来在 videojs.com 主页上进行演示。我已经在 IE 11 和 Chrome 上尝试过,结果相同。
这是预期的行为吗?如果是这样,CSS和/或JavaScript中是否有一种简单的方法来控制/检测/计算发生这种情况的最小宽度,这样我就可以防止视频元素宽度变得足够小以使控件出现在视频下方元素?我的一些视频有 CC 曲目,有些没有。有些启用了playbackRates 控件,有些则没有。
我目前使用以下代码来调整我的 16:9 视频的大小,所以如果可能的话,我想在这里强制执行最小宽度:
videojs("embvid", { "height": "auto", "width": "auto" }).ready(function () {
// Get the video player object.
var videoPlayer = this;
// Get the player's parent element.
var parent = document.getElementById(videoPlayer.id()).parentElement;
// Video's aspect ratio (HD).
var aspectRatio = 9 / 16;
function resizeVideoJS() {
// Find the parent's current width.
var width = parent.offsetWidth;
videoPlayer.width(width).height(width * aspectRatio);
}
// Initialize the size by calling once.
resizeVideoJS();
// Call again on every resize event.
window.onresize = resizeVideoJS;});
编辑:videojs主页使用:
<script src="//vjs.zencdn.net/4.12.5/video.js"></script>
我的页面使用:
<script src="http://vjs.zencdn.net/4.12/video.js"></script>
两个版本在 Chrome 和 IE 11 上都表现出相同的行为。
我将视频元素包装在一个 div 中,并通过实验将这个 div 中的 min-width 设置为 385px。这可以防止视频元素变得足够窄,当有 CC 和 PlaybackRates 控件时,控件会出现在元素下方。但我不希望有这个硬编码。如果可能的话,我宁愿根据实际阈值计算适当的最小宽度。
【问题讨论】:
标签: javascript video width controls video.js