HTML5 视频具有固有的纵横比并且倾向于保持它,不管你的 CSS 告诉他们做什么。
我有一个不是 16:9 的响应式视频容器,我希望其中的视频可以拉伸到 100% 的宽度和 100% 的高度,即使它破坏了它们的原始纵横比。
我已经阅读了 CSS object-fit: fill 属性,它可以解决我的问题,但是在现代浏览器支持它之前还有很长的路要走。所以我想我必须求助于 JavaScript 来实现我所需要的。
我遇到了这个小提琴:
function scaleToFill(videoTag) {
var $video = $(videoTag),
videoRatio = videoTag.videoWidth / videoTag.videoHeight,
tagRatio = $video.width() / $video.height();
if (videoRatio < tagRatio) {
$video.css('-webkit-transform','scaleX(' + tagRatio / videoRatio + ')')
} else if (tagRatio < videoRatio) {
$video.css('-webkit-transform','scaleY(' + videoRatio / tagRatio + ')')
}
}
$(function () {
$("#testVideo").click(function(evt) {
scaleToFill(document.getElementsByTagName("video")[0]);
});
});
但是,我似乎无法让这段代码工作。控制台告诉我 videoWidth 属性无法读取。