javascript - 浏览器中 100% 宽度的视频的不同高度

标签 javascript jquery html html5-video

对于宽度为 100% 的视频,jquery height() 函数(编辑:innerHeight() 和outerHeight() 也 ) 在不同的浏览器中返回不同的数字。

参见http://www.bootply.com/iNuBWZeWCx

我的分辨率是 1920x1080,但浏览器针对任何特定分辨率返回不同的数字。在我的分辨率下,浏览器窗口最大化时视频的真实高度是 1047px

  • Chrome 48.0.2564.109 m:几乎总是输出 952,很少输出 1047,尽管我无法检测到它发生变化的原因,我现在正在刷新它,但它仍保持在 952 ...
  • Firefox 44.0.2:始终输出1047
  • IE Edge 11.103.10586.0:始终输出 952

为什么 Chrome + IE 输出 952?他们是怎么得到这个号码的?如何获得正确的高度?

根据要求编写以下代码...

<p id="videoheight"></p>
<video id="bgvideo" style="width:100%;">
    <source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
    <source src="http://www.w3schools.com/html/mov_bbb.ogg" type="video/ogg">
</video>

<script type="text/javascript">
$(document).ready(function() {
    $("#videoheight").text($("#bgvideo").innerHeight());
});
</script>

编辑:

  • DOM 资源管理器中的 IE Edge 显示为 1903x1046.65
  • 火狐检查器:1903x1046.65
  • Chrome 开发者工具:1903x1047

最佳答案

我的猜测是这是一个时间问题。由于您的视频可能尚未加载,并且在您请求高度时视频文件的尺寸仍然未知。

您应该等待loadedmetadata事件。

$(function () {
    $("#bgvideo").bind("loadedmetadata", function () {
         $("#videoheight").text($(this).innerHeight());
    });
});

关于javascript - 浏览器中 100% 宽度的视频的不同高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35361181/

相关文章:

javascript - typescript 类型限制行为

javascript - 为什么使用排序函数时正数会导致元素不切换?

javascript - 如何使用原生 html 输入范围和 Vue.js 创建双范围 slider ?

javascript - jQuery 禁用键盘上的按下提交

javascript - Jquery UI datepicker 添加 "Unknown"选项值到输入

javascript - jQuery $(this) 不起作用

html - 省略 </TD> 和 </TR> 标签是否安全?

javascript - 将鼠标悬停在段落上时如何更改图像的 src?

html - CSS 未命中行为

javascript - 如何在 Javascript 中始终向下舍入到最接近的 X 倍数?