Ich habe ein div mit einem schwarzen Hintergrund. Wenn meine Seite geladen wird, rufe ich eine image
an und lade dann image
in eine div
hinter der Hauptleitung div
. Dann möchte ich die überlagernden div
sanft verblassen, um eine Opazität zu haben, so dass das Bild darunter angezeigt wird, aber ohne die Opazität des Inhalts in der überlagernden div
.Glatte Hintergrundfarbe Opazität nach zugrunde liegenden Bild lädt
Was ich habe, ist eigentlich gar nicht arbeiten: https://jsfiddle.net/n7t2xmha/3/
- Die Animation ist nicht glatt
- Die Opazität ist nicht korrekt
- Der Text bleibt nicht solide
Code:
<div class="outerdiv">
<div class="innerdiv">
</div>
<p>
content - should remain solid white
</p>
</div>
.outerdiv {
background-color: black;
position: relative;
display: block;
height: 500px;
width: 500px;
color: white;
-moz-transition: all 1s linear;
-o-transition: all 1s linear;
-webkit-transition: all 1s linear;
transition: all 1s linear;
}
.outerdiv-opaque {
opacity: 0.9 !important;
}
.innerdiv {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index=-1;
}
JS
var innerDiv = $('.innerdiv');
setTimeout(function() {
innerDiv.css('background-image', 'url(http://i.stack.imgur.com/MxR09.png)');
var outerdiv = $('.outerdiv');
setTimeout(function() {
outerdiv.addClass('outerdiv-opaque');
}, 500);
}, 1000)
Sie berücksichtigen nicht die Tatsache, dass ich hinter einer darüberliegenden div ein Bild laden, die lesbar bleiben muss. – SB2055
@ SB2055 Ich werde in Kürze ändern – amdouglas
@ SB2055 getan. Ich habe nur vergessen, Position hinzuzufügen: relativ; z-index: 3; 'zu dem überlagernden Element, das in meinem Beispiel ein' p'-Element ist, aber ebenso einfach ein 'div' oder irgendein anderes Element für diese Angelegenheit sein könnte. Wenn Sie möchten, dass das überlagerte 'p'-Element vertikal und horizontal zentriert ist, können Sie' position: absolute; oben: 50%; links: 0; rechts: 0; Textausrichtung: Mitte; transform: translateY (-50%); z-index: 3; 'um das überlagernde Element in die Mitte zu legen. – amdouglas