Como criar um efeito de esmaecimento com CSS no fundo com uma imagem em cima dele?
Estou tentando replicar o controle deslizante de imagem em https://www.masterclass.com/
Comentários
Resposta
Para criar essa aparência, você pode definir a imagem como plano de fundo de um div e, em seguida, criar um gradiente “preto para claro para preto” no div para que apareça no topo da imagem.
.slideBanner{ background-image: url("../images/Ramsey.jpg"); } .slideBanner{ background: -moz-linear-gradient(left, rgba(0,0,0,0.65) 0%, rgba(255,255,255,0) 48%, rgba(2,2,2,1) 100%); /* FF3.6-15 */ background: -webkit-linear-gradient(left, rgba(0,0,0,0.65) 0%,rgba(255,255,255,0) 48%,rgba(2,2,2,1) 100%); /* Chrome10-25,Safari5.1-6 */ background: linear-gradient(to right, rgba(0,0,0,0.65) 0%,rgba(255,255,255,0) 48%,rgba(2,2,2,1) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#a6000000", endColorstr="#020202",GradientType=1 ); /* IE6-9 */ }
Encontrei este código de gradiente de um dos muitos geradores de gradiente: http://www.colorzilla.com/gradient-editor/
Resposta
Você pode encadear fundos em CSS, separados por uma vírgula. O primeiro é o mais baixo, o segundo está em cima disso, et. Portanto, tudo o que você precisa fazer é definir a imagem primeiro e depois o gradiente.
Você pode até usar modos de mesclagem em navegadores modernos para garantir um bom efeito de mesclagem na imagem.
I “Deixarei que você gere os prefixos de navegador necessários (o gerador vinculado na outra resposta é muito bom para isso).
.slideBanner{ background: url("https://placeimg.com/500/500/nature") 0 0 no-repeat, radial-gradient(ellipse at center, rgba(0,0,0,0) 20%,rgba(0,0,0,1) 100%); background-blend-mode: multiply; }
JSfiddle prova: https://jsfiddle.net/synu8xk1/2/
:before
pseudo-elementos t para aplicar o gradiente png como uma imagem BG na parte superior da imagem real.