如何让我的背景视频全屏响应?

Posted

技术标签:

【中文标题】如何让我的背景视频全屏响应?【英文标题】:How can I make my background video full screen in react? 【发布时间】:2021-05-07 15:12:39 【问题描述】:

我正在关注一个视频来编写一个完全响应的网站,但我似乎无法像视频中那样使背景视频全屏,也许我缺少一行代码?您会在屏幕截图中看到底部有一个很大的空白区域。我将在下面留下一些代码,希望这将有助于找到问题。非常感谢!

index.js:

return (
    <HeroContainer>
        <HeroBg>
            <VideoBg autoPlay loop muted src=Video type='video/mp4' />
        </HeroBg>
        <HeroContent>
            <HeroH1>Estudio Contable</HeroH1>
            <HeroP>
                Consultá por nuestros servicios.
            </HeroP>
            <HeroBtnWrapper>
                <Button 
                    to='contactanos' 
                    onMouseEnter=onHover 
                    onMouseLeave=onHover
                    primary="true"
                    dark="true"
                >
                    Contactanos hover ? <ArrowForward /> : <ArrowRight />
                </Button>
            </HeroBtnWrapper>
        </HeroContent>
    </HeroContainer>
)

造型:

export const HeroBg = styled.div`
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
`
export const VideoBg = styled.video`
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
background: #232a34;
`

【问题讨论】:

【参考方案1】:

设置位置:修复,以及顶部和左侧属性。这将确保覆盖整个背景区域。

在您的情况下,这将在变量VideoBg

video 
  object-fit: cover;
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;

来源:https://css-tricks.com/full-page-background-video-styles/

【讨论】:

【参考方案2】:

尝试将 HeroBg 的高度设置为 100vh 而不是 100%;

export const HeroBg = styled.div`
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
   width: 100%;
   height: 100vh;
   overflow: hidden;
 `

【讨论】:

以上是关于如何让我的背景视频全屏响应?的主要内容,如果未能解决你的问题,请参考以下文章

在 SwiftUI 中,如何将视频循环添加为全屏背景图像?

在 Objective-C 中让我的 UIViewController 全屏显示

使用 HTML5 的全屏背景视频

如何把视频设置成空间主页背景,全屏播放那种!

没有黑条的响应式全屏 youtube 视频?

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