HTML5视频具有固有的宽高比,无论你的CSS要求什么,它们都倾向于保持这个宽高比。
我有一个响应式视频容器,但它不是16:9的,我希望容器内的视频可以拉伸到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属性。