Почему может сбоить видео на фоне после возврата из другой вкладки?

Верстка такая:
<div class="fullscreen-bg">
        <div class="overlay"></div>
        <video loop muted autoplay class="fullscreen-bg__video">
            <source src="/img/video/bg.mp4" type="video/mp4">
            <source src="/img/video/bg.webm" type="video/webm">
        </video>
    </div>


Стили такие:
spoiler
.fullscreen-bg {
    overflow: hidden;
    z-index: -100;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.fullscreen-bg__video {
    position: absolute;
    overflow: hidden;
    z-index: -1000;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    -webkit-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
}

.overlay {
    background: rgba(0, 0, 0, 0.85);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    bottom: 0;
    z-index: -100;
}



Часто при возврате на вкладку вместо видео какие-то квадраты. Через некоторое время видео появляется снова, возможно после его завершения и возврата на начало.

Куда копать?
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 1
JaxAdam
@JaxAdam
Junior Full-Stack Developer
У вас там все заабсалючено. Когда блок с абсолютным позиционированием стоит в блоке с абсолютным позиционированием его высота становится равна 0. Тут нужно много корректировок.

z-index-ы не менял. Сами поиграетесь

P.S. Старайтесь не указывать right/left, top/bottom вместе. А если нужно поставить блок по центру лучше использовать флексы.

display: flex;
align-items: center;
justify-content: center;

<div class="block-with-video">
    <div class="fullscreen-bg">
        <div class="overlay"></div>
        <video loop muted autoplay class="fullscreen-bg__video">
            <source src="/img/video/bg.mp4" type="video/mp4">
            <source src="/img/video/bg.webm" type="video/webm">
        </video>
    </div>
</div>


.block-with-video{
position: absolute;
top: 0;
left: 0;
height: 100vh;
width: 100vw;
}

.fullscreen-bg {
    overflow: hidden;
    z-index: -100;
    position: relative;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.fullscreen-bg__video {
    position: absolute;
    overflow: hidden;
    z-index: -1000;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.overlay {
    background: rgba(0, 0, 0, 0.85);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -100;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы