gpt4 book ai didi

css - 带封面图片的全屏背景 HTML5 视频

转载 作者:行者123 更新时间:2023-11-28 03:42:28 27 4
gpt4 key购买 nike

我正在尝试将全屏背景视频添加到我的网站。我也想添加一张封面图片,因为在移动设备上视频根本无法播放(因为没有用户交互,浏览器就不会加载它)。

所以我添加了视频,正确定位它,然后我添加了图像。图片是视频的第一帧。问题来了:视频和图片的位置不一样。因此,用户首先看到封面图片,片刻之后视频开始播放,但出现了跳转,因为视频与图片的位置不同。请注意,您可能需要调整浏览器窗口的大小才能看到问题。在 1920x1080 分辨率下,它几乎看不见。

如何正确定位视频和封面图片?

请参阅下面的演示代码。视频在 2 秒后开始播放,因此您可以看到图像,然后是视频。

这是一个demo video在其中您可以看到图像,然后是暂停的视频,cover imagevideo .

<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<style>
html,
body,
div,
video {
margin: 0;
padding: 0;
}

html,
body {
height: 100%;
}

.video {
position: fixed;
top: 50%;
left: 50%;
z-index: 1;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}

.panel-cover {
position: fixed;
background-image: url(cover.jpg);
z-index: 2;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<video id="background-video" class="video" muted loop preload="auto">
<source src="Palm_Trees.mp4" type="video/mp4">
</video>
<div class="panel-cover"></div>
<script>
(function () {
function playVideo(video) {
setTimeout (function () {
video.play();
document.querySelector(".panel-cover").style.background = 'none';
}, 2000);
}

window.onload = function () {
var video = document.querySelector("#background-video");
video.addEventListener("canplay", function () {
playVideo(video);
}, false);

if (video.readyState > 3) {
playVideo(video);
}
}
})();
</script>
</body>
</html>

最佳答案

我在我的一个网站上有这个工作,所以我会把完整的代码粘贴给你,你可以根据你的需要进行调整。

<div class="bgBox">
<div class="bgBox__cover cover_60"></div>
<div class="bgBox__holder" style="background-image: url('PATH/TO/IMAGE/COVER');">

<video loop="" muted="" autoplay="" class="bgBox__video">
<source type="video/mp4" src="PATH/TO/VIDEO">
</video>

</div>
</div>

和 CSS:

.bgBox {
position: fixed;
z-index: -1;
}

.bgBox__cover {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
z-index: 2;
margin: 0;
padding: 0;
}

.cover_60 {
background-color: rgba(0,0,0,.6);
}

.bgBox__holder {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
z-index: 1;
margin: 0;
padding: 0;
background-size: cover;
background-repeat: no-repeat;
background-position: center center;
}

.bgBox__video {
-webkit-transition: opacity 1s ease;
-khtml-transition: opacity 1s ease;
-moz-transition: opacity 1s ease;
-ms-transition: opacity 1s ease;
-o-transition: opacity 1s ease;
transition: opacity 1s ease;
filter: alpha(opacity=100);
-ms-filter: "alpha(Opacity=100)";
-webkit-opacity: 1;
-khtml-opacity: 1;
-moz-opacity: 1;
-ms-opacity: 1;
-o-opacity: 1;
opacity: 1;
position: fixed;
top: 50%;
left: 50%;
z-index: 1;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
transform: translate(-50%,-50%);
}

希望对您有所帮助。

图片需要与视频具有相同的宽高比。

关于css - 带封面图片的全屏背景 HTML5 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44144484/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com