Às vezes você precisa de uma imagem de fundo fixa que, na maioria dos casos, cubra o fundo.
A abordagem usual é definir os atributos CSS background-attachment: fixed;
ebackground-size: cover;
Para obter um aumento de desempenho (pelo menos no cromo), você pode levar o fundo para um elemento anterior.
Peguei esse método na seguinte postagem do blog, onde você pode lê-lo com mais detalhes:
https://fourword.fourkitchens.com/article/fix-scrolling-performance-css-will-change-property
Então é assim que é feito normalmente:
.fixed-background {
@include clearfix;
border-top: 10px solid rgba(255, 255, 255, .46);
background-color: white;
background: url('/img/bg.jpg') no-repeat center center;
background-attachment: fixed;
background-size: cover;
color: $white;
padding-bottom: 4em;
}
E isso deixa você carregado mais rápido:
.fixed-background {
@include clearfix;
border-top: 10px solid rgba(255, 255, 255, .46);
color: $white;
padding-bottom: 4em;
overflow: hidden; // added for pseudo-element
position: relative; // added for pseudo-element
// Fixed-position background image
&::before {
content: ' ';
position: fixed; // instead of background-attachment
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: white;
background: url('/img/bg.jpg') no-repeat center center;
background-size: cover;
will-change: transform; // creates a new paint layer
z-index: -1;
}
}
é isso aí.