6

我正在尝试创建一个背景是视频的网站。我一直在寻找如何重新创建像Spotify 的主页背景这样的东西,但似乎无法让它工作。

我的问题是我可以使用浏览器缩放高度或宽度,但不能同时使用两者。与 Spotify 网站上的视频不同,它不能随时缩放以适应浏览器。我尝试了很多东西,其中大部分我不记得了。我不介意使用 JQuery 来实现这种效果。

我目前的代码是:

<!DOCTYPE html>
<html>
<head>
<title>VideoBG</title>
<style type="text/css">


#videohome {
    position:absolute; 
    height: 100%;
    width: 100%;

    top:0;  
    left:0;  
    right:0;  
    bottom:0;
}

</style>
</head>
<body>


        <video  id="videohome"  preload="auto" autoplay="true" loop="loop" muted="" volume="0">
            <source src="./homepage.mp4" type="video/mp4" />
        </video>


</body>
</html>
4

4 回答 4

7

您需要有一个适合屏幕的容器 div,然后向视频添加一个类,将其调整为宽度或高度。

CSS:

.container {
width: 100%;
height: 100%;
position: absolute;
padding:0;
margin:0;
left: 0px;
top: 0px;
z-index: -1000;
overflow:hidden;
}

.videoPlayer {
    min-height: 100%;
    //min-width:100%; - if fit to width
position:absolute;
bottom:0;
left:0;
}

HTML:

<div class="container"><video class="videoPlayer">Code goes here</video></div>
于 2013-05-22T09:22:32.167 回答
3

object-fit: cover在容器中使用

于 2018-09-17T10:15:05.300 回答
2

老歌不过是金曲。我自己一直在努力解决这个问题,但发现纵横比媒体查询可以很好地完成这项工作。

如果不支持媒体查询,视频仍会覆盖页面,但无法正确缩放。

如果或不受支持translateX,则视频不会居中。translateY@supports

HTML:

<div class="cover">

    <video autoplay loop mute poster="path/to/image.jpg">
        <source src="path/to/video.mp4" type="video/mp4" />
        <source src="path/to/video.webm" type="video/webm" />
        <source src="path/to/video.ogv" type="video/ogg" />
        <img src="path/to/image.jpg" alt="" />
    </video>

</div>

CSS:

.cover {
    bottom: 0;
    left: 0;
    overflow: hidden;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
}

.cover img, .cover video {
    display: block;
    height: auto;
    left: auto;
    max-width: none;
    min-height: 100%;
    min-width: 100%;
    right: auto;
    position: absolute;
    top: 0;
    width: auto;
    z-index: 1;
}

@supports (transform: translateX(-50%)) {

    .cover img, .cover video {
        left: 50%;
        top: 50%;
        transform: translateX(-50%) translateY(-50%);
    }

}

@media screen and (min-aspect-ratio: 16/9){/* Make this the same aspect ratio as your video */

    .cover img, .cover video {
        max-width: 100vw;
        min-width: 100vw;
        width: 100vw;
    }

}

@media screen and (max-aspect-ratio: 16/9){/* Make this the same aspect ratio as your video */

    .cover img, .cover video {
        height: 100vh;
        max-height: 100vh;
        min-height: 100vh;
    }

}
于 2017-10-27T12:50:35.110 回答
0

我找到了这个:

http://wesbos.com/css-object-fit/

使用object-fit:cover;在您的视频标签上

它对我有用。

于 2018-01-04T22:06:52.153 回答