/* ПЛОХО */
.my-div {
background-size: cover;
}
/* ЛУЧШЕ */
.my-div::before {
content: '';
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-size: cover;
will-change: transform;
z-index: -1;
}
top
нужно менять свойство translate
. В этом случае при анимации будет задействована видеокарта и она будет сильно плавнее.