Я пытаюсь реализовать полноэкранный фоновый эффект бесконечной прокрутки, который должен распространяться на всю высоту и ширину области просмотра.
Вот демонстрация.
Решение, которое я пробовал, заключалось в том, чтобы взять элемент-оболочку, который имеет 100vh
и 100vw
области просмотра, а затем поместить внутри него 2 div
, 100% его высоты, которые имеют такое же фоновое изображение и свойство background-size: cover
. Размер изображения, которое я использовал, составляет: 1920 пикселей × 808 пикселей.
Затем я применил следующую анимацию к элементу-оболочке:
@keyframes infiniteScrollBg {
0% {
transform: translateY(0%);
}
100%{
transform: translateY(-100%);
}
}
Но проблема в том, что при некоторых размерах области просмотра изображения повторяются неправильно (из-за свойства background-size: cover
):
Вот полный код, который я пробовал:
<div class="animated-scene">
<div class="animated-scene__frame animated-scene__frame-1"></div>
<div class="animated-scene__frame animated-scene__frame-2"></div>
</div>
И CSS:
.animated-scene {
width: 100vw;
height: 100vh;
position: fixed;
min-height: 400px;
animation: infiniteScrollBg 50s linear infinite;
}
.animated-scene__frame {
width: 100%;
height: 100%;
background-size: cover;
background-color: #4277a3;
background-image: url('https://andreivictor.ro/codepen/fullscreen-infinite-scroll-bg/fullscreen-bg');
}
Есть ли у вас какие-либо идеи о том, как я могу реализовать этот эффект?
Спасибо за вашу помощь.