javascript - 保持 HTML5 背景视频全屏(在移动设备上)
问题描述
问题:当我调整浏览器窗口的大小时,只要窗口的宽度大于高度,我已经很好对齐的视频将继续填充屏幕,同时保持纵横比。当窗口的高度开始大于宽度时,视频的顶部和底部会出现空白。
我的代码:我目前正在为以下 HTML 代码使用以下 CSS 代码:
.bgvideodiv {
position: absolute;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
text-align: center;
-webkit-filter: blur(5px) brightness(50%);
-moz-filter: blur(5px) brightness(50%);
-o-filter: blur(5px) brightness(50%);
-ms-filter: blur(5px) brightness(50%);
filter: blur(5px) brightness(50%);
overflow: hidden !important;
}
.bgvideo {
height: 100%;
min-width: 100%;
width: auto;
/* Same: object-fit: fill; */
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}
.scaler {
position: absolute;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
text-align: center;
overflow: hidden;
transform: scale(1.2);
}
<div class="scaler">
<div class="bgvideodiv">
<video playsinline="" autoplay="" muted="" preload="auto" poster="" loop="" class="bgvideo">
<source src="hero.mp4" type="video/mp4"></source>
<source src="hero.webm" type="video/webm"></source>
</video>
</div>
</div>
(您必须添加自己的视频 mp4 和 webm 才能使该片段正常工作)
我更喜欢纯 CSS 解决方案,但 JS / jQuery 也可以。
我已经找到了解决方案;见下文。
解决方案
试试这个
.bgvideo {
width: 100%;
height: auto;
/* Same: object-fit: fill; */
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
transform: translate(-50%,-50%)
}
推荐阅读
- c - 使用c中函数的输出声明字符串变量
- wordpress - 列出不带子类别的自定义帖子类型的类别
- python - 用户数据的基本 for 循环问题
- apache-spark-sql - 如果我从分区的 Hive 表创建 DataFrame,将创建多少个分区?
- appium - Appium 的排队会话
- r - 使用 R XML 包将父节点添加到 XML 节点
- json - 无法从数组访问 JSON
- r - 在 R 中,使用 geom_sf + frame 并将其传递给 plotly::ggplotly 会给我转换错误,我错过了什么?
- php - PHPMailer:邮件不会回复,创建新邮件
- draw2d-js - ArrowDecorator 作为默认拖动连接