Ich versuche, einen reinen CSS-Parallax-Effekt ohne eine feste Hintergrundhöhe zu erzielen. Dies wurde in einem places beschrieben, aber sie haben die allgemeine Einschränkung, dass die Hintergrundschicht eine feste, bekannte Höhe haben muss.Reine CSS-Parallaxe ohne feste Hintergrundhöhe?
Ich möchte den Effekt arbeiten, ohne eine feste, bekannte Höhe für den Hintergrund aufgrund einiger dynamischer Inhalte zu haben.
Mein minimal Beispiel ist hier: https://jsfiddle.net/yf8oyben/
#container {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
perspective: 1px;
overflow-x: hidden;
overflow-y: scroll;
}
.background {
transform: translateZ(-1px) scale(2);
width: 100%;
background: lightgreen;
height: 250px; /* Assumes bg height */
position: absolute; /* Assumes bg height */
top: calc(125px - 50vh); /* Assumes bg height */
}
.foreground {
background: rgba(0, 0, 255, 0.5);
width: 100%;
position: absolute; /* Assumes bg height */
top: 250px; /* Assumes bg height */
}
<body>
<div id='container'>
<div id="group1">
<div class="background">
<div style="height: 10rem"></div>
<center>Banner</center>
<div style="height: 10rem"></div>
</div>
<div class="foreground">
<div style="height: 10rem"></div>
<center>Content</center>
<div style="height: 100rem"></div>
</div>
</div>
</div>
</body>
Es funktioniert jetzt geht aber davon aus, dass der Hintergrund ist 250 Pixel, wie in der CSS kommentiert. Ist es möglich, dies zu entfernen und trotzdem den Effekt beizubehalten, wie er derzeit ist?
ich mit diesem Problem viel gekämpft und haben jede mögliche Lösung nicht gefunden wird, im Grunde ist das Hauptproblem, dass ein div Elternteil kann nicht Stellen Sie seine Höhe auf ein absolutes Kind-Div, also müssen Sie eine Zeile js einfügen, um seine Höhe einzustellen. –