Пытаюсь реализовать смену фона при скролле. Изначально просто менял значение для bg-image на body при определенных позициях элементов во вьюпорте, но при первом появлении новой фоновой картинки проявлялись фризы. Нашел такое решение
body {
&::after {
content: "";
/* при скроле меняю значение переменной --bgImage,отрисовывается новый фон */
background-image: var(--bgImage);
background-repeat: no-repeat;
background-size: cover;
position: fixed;
transition: background-image 0.5s ease 0.2s;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
z-index: -5;
}
}
Все окей в хроме, опере. Но мозила упорно не хочет в транзишн. Картинки просто моментально сменяют друг друга. На стаковерфлоу нашел подобные решения
.test
{
width: 400px;
height: 150px;
position: relative;
border: 1px solid green;
}
.test:before, .test:after {
content: "";
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
opacity: 1;
}
.test:before {
background-color: red;
z-index: 1;
transition: opacity 1s;
}
.test:after {
background-color: green;
}
.test:hover:before {
opacity: 0;
}
но мне не подходит, так как картинок фона будет много. Кто что может посоветовать?