Ich finde CSS-Transitions und Animations ja ziemlich lustig đ und wollte schon immer so eine Web-Slideshow basteln ohne irgend ein JavaScript. Hier mal ein Beispiel:
Das war einfacher als gedacht. In diesem Artikel hab ich das nun etwas aufbereitet – als Inspiration, zum Nachbauen oder Experimentieren (und nicht zuletzt als Dokumentation fĂŒr mich).
Inhalt
1. Bilder aussuchen
Man nehme ein paar Bilder, z.B. diese hier:
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
- Quelle: Pexels
Oder andere: Hier ein Auszug aus meinem Lesezeichen-Ordner "Free Stock Images": Die Bilder sind meist kostenfrei – auch kommerziell – nutzbar. Aber bitte die Lizenzbedingungen der Portale prĂŒfen und ggf. Lizenzbedingungen (evtl. sind Angabe des Portals und/oder der Urheber o.Ă€.) erfĂŒllen. Die Liste ist alphabetisch und nach keinen anderen Kriterien sortiert:
- https://burst.shopify.com/
- https://deathtothestockphoto.com/
- https://freestocks.org/
- https://kaboompics.com/
- https://mmtstock.com/
- https://pexels.com/
- https://picjumbo.com/
- https://picography.co/
- https://pixabay.com/
- https://shotstash.com/
- https://stocksnap.io/
- https://unsplash.com/
Viel SpaĂ beim Stöbern đ
2. Das HTML-GerĂŒst
Man benötigt nur wenig HTML. Ich lege einen div-Container ("Wrapper") an, und darin eine ul-Liste. Die Anzahl der Listenpunkte (li) entspricht der Anzahl der Slides:
HTML
<div id="slideshow_wrapper">
<ul class="slideshow">
<li>Slide01</li>
<li>Slide02</li>
<li>Slide03</li>
...
<li>SlideXX</li> /* XX = Anzahl der Slides */
</ul>
</div>
Alles weitere ist reines CSS đ
3. Das Basis-CSS
Der Wrapper wird – je nach SeitengerĂŒst – positioniert und mit Höhe und Breite, optional mit Hintergrundfarbe (dazu unten mehr: Abschnitt "Die Ăberblendung", Stichwort "Timing ĂŒberprĂŒfen") ausgestattet:
CSS
/* Wrapper fĂŒr "in-page-slideshows" */
#slideshow_wrapper {
background:red;
position:relative;
width:100%;
height:500px; /* Beispielwert! */
max-height:100vh; /* fĂŒr Smartphones */
}
/* Wrapper fĂŒr "background-slideshows" */
#slideshow_wrapper {
background:red;
position:fixed;
width:100%;
height:100%;
}
Die erste Variante ist ein div, welches sich relative positioniert in die anderen DOM-Objekte einfĂŒgt, die Höhe (height) ist dabei variabel festsetzbar, die max. Höhe (max-height) verhindert zu groĂe Darstellungen auf kleinen Bildschirmen.
Die zweite Variante ist eine fĂŒr eine bildschirm- (bzw. browserfenster-) fĂŒllende Variante (position:fixed und height:100%;).
Die "unodered list" ul soll ohne AufzĂ€hlingszeichen (list-style:none;) und absolut positioniert den ganzen Wrapper einnehmen (via position, width, height, top, right, bottom, left, margin, padding). Das overflow:hidden; ist sinnvoll, um bei skalierten und/oder gedrehten Bildern deren "ĂŒberstehende" RĂ€nder und Ecken abzuschneiden.
CSS
.slideshow {
list-style:none;
position:absolute;
width: 100%;
height: 100%;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: 0;
padding: 0;
overflow:hidden;
}
Die Slides werden durch die "list items" li reprĂ€sentiert. Diese werden ebenfalls absolut positioniert und auf maximale GröĂe gebracht (position, height, width, top, right, bottom, left). Die Bilder werden via Hintergrundbild in die Slides eingebastelt:
CSS
.slideshow li {
position: absolute;
width: 100%;
height: 100%;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: transparent url(01.jpg) no-repeat center center / cover;
}
Die "shorthand property" fĂŒr den Hintergrund kann ich hier gerne mal aufdröseln, um sie evtl. besser verstĂ€ndlich zu machen:
CSS
.slideshow li {
...
background-color: transparent;
background-image: url(01.jpg);
background-repeat: no-repeat;
background-position: center center; /* horizontal, vertikal */
background-size: cover;
}
Das Bild wird also horizontal und vertikal zentriert (background-position: center center;) und mit der GröĂenangabe background-size:cover; versehen, so dass es den zu VerfĂŒgung stehenden Platz immer ausfĂŒllt.
Das heiĂt aber auch: Ist das Bild nicht hoch und/oder breit genug, um den Container auszufĂŒllen, wird es so groĂ skaliert, bis es passt. Wenn das Bild ein anderes SeitenverhĂ€ltnis hat als der Container, steht es beim Hochskalieren dann aber aus diesem heraus. Hier ist hier das oben erwĂ€hnte overflow:hidden; der ul.slideshow dafĂŒr verantwortlich, dass die ĂŒberstehenden Bildbereiche ausgeblendet werden.
Um nicht zu viel CSS zu schreiben, gruppiere ich die fĂŒr alle Slides geltenden Regeln in einer allgemeinen Definition fĂŒr alle .slideshow li’s, die speziellen weise ich dagegen den :nth-child-Pseudoklassen zu. Optional kann man auch den li’s im HTML z.B. durchnummerierte Klassen mitgeben, z.B. .slide01, .slide02, usw., um diese ohne Pseudoklassen anzusprechen.
CSS
.slideshow li {
width: 100%;
height: 100%;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
color: transparent;
background-size: cover;
background-position: center center;
}
.slideshow li:nth-child(1) {background-image: url(01.jpg);}
.slideshow li:nth-child(2) {background-image: url(05.jpg);}
.slideshow li:nth-child(3) {background-image: url(06.jpg);}
.slideshow li:nth-child(4) {background-image: url(08.jpg);}
.slideshow li:nth-child(5) {background-image: url(09.jpg);}
.slideshow li:nth-child(6) {background-image: url(10.jpg);}
.slideshow li:nth-child(7) {background-image: url(13.jpg);}
.slideshow li:nth-child(8) {background-image: url(15.jpg);}
.slideshow li:nth-child(9) {background-image: url(17.jpg);}
.slideshow li:nth-child(10) {background-image: url(20.jpg);}
So weit, so gut. Die allererste Slide wird angezeigt, ist "wrapper-fĂŒllend" skaliert und positioniert:
Was fehlt? Ach ja, klar:
4. Die Animation
Das "Kind braucht einen Namen", z.B. animation-name: slideShow;, soll nicht ein- und/oder ausschwenken sondern linear ablaufen (animation-timing-function: linear;), unendlich oft (animation-iteration-count: infinite;) wiederholt werden und ohne verzögerung starten (animation-delay: 0s;). Bei 10 Bildern und einer Anzeigedauer von – sagen wir einmal – 5 Sek. je Bild dauert der SpaĂ insgesamt die animation-duration: 50s; (nĂ€mlich: 10 Bilder * 5s = 50s).
Daher fĂŒge ich der .slideshow li folgendes hinzu:
CSS
.slideshow1 li {
[... bisheriges CSS ...]
animation-name: slideShow
animation-duration: 50s;
animation-timing-function: linear;
animation-interation-count: infinite;
animation-delay: 0s;
/* shorthand */
animation: slideShow 50s linear infinite 0s;
opacity: 0;
}
Da der Slide-Ăbergang mittels Deckkraft animiert wird, setze ich diese hier schon einmal auf 0 (opacity:0;).
4.1 Die Ăberblendung
Jetzt benötigt unsere Animation slideShow noch Angaben dazu, wer wann wie animiert werden soll. Das passiert mittels sog. Keyframes. DafĂŒr muss man mehrere SchlĂŒsselbilder (mind. 2) definieren, welche mithilfe einer Prozentangabe zeitlich in der animation-duration platziert werden. Beispiel: Drei Keyframes (Anfang, Mitte und Ende) innerhalb des CSS mit 0%, 50% und 100% wĂŒrden bei einer Animationsdauer von 50 Sekunden in etwa (s.u.) den den Zeitpunkten "Sekunden 0", "Sekunde 25" und "Sekunde 50" entsprechen und folgendermaĂen notiert:
CSS
@keyframes slideShow {
0% {
[ Zustand ]
}
50% {
[ Zustand ]
}
100% {
[ Zustand ]
}
}
Die Keyframes enthalten also eine Zustandsbeschreibung des DOM-Objektes, welchem die Animation zugeordnet ist. Die Animation selber (also die "ZwischenzustĂ€nde") berechnet der Browser netterweise eigenstĂ€ndig und zeigt sie als Bewegung. đ
Bei den Prozentangaben in Relation zur Zeit kommt es mir manchmal so vor, als ob 100% von 50 Sekunden nicht bei der Zeitmarke 0:50:00 sondern bei der Zeitmarke 0:50:99999… liegt. Im Beispiel entsprĂ€che der Keyframe 25% also eher der Zeitmarke 0:25:50. Die Milisekunden sind nicht immer vernachlĂ€ssigbar…
WeiĂ da jemand mehr?
Um die Keyframes festzulegen, muss man sich nun mal genau ĂŒberlegen, was denn da eigentlich passieren soll: Die Slides sollen zu Beginn ca. 1 Sek. eingeblendet, 4 Sekunden angezeigt und dann wieder 1 Sek. ausgeblendet werden. WĂ€hrend Slide 1 ausblendet, soll Slide 2 bereits eingeblendet werden. FĂŒr die Slides 2 bis 10 nutzen wir spĂ€ter dafĂŒr eine Verzögerung via animation-delay. Nach der letzten Slide soll wieder mit Slide 1 begonnen werden (daher animation-iteration-count:infinite;).
Wenn ich das mal schematisch darstellen soll, wĂŒrde in etwa so etwas dabei heraus kommen:
FĂŒr das erste Bild heiĂt das:
Keyframe bei Sekunde 0 mit Deckkraft 0%,
Keyframe bei Sekunde 1 mit Deckkraft 100%,
Keyframe bei Sekunde 5 mit Deckkraft 100%,
Keyframe bei Sekunde 6 mit Deckkraft 0%.
Um nun die Keyframes ĂŒber die animation-duration (= 50 Sek.) in Prozent angeben zu können, muss ich also nur ein wenig rechnen:
Sek. 0 von 50s = 0%,
Sek. 1 von 50s ~ 2%,
Sek. 5 von 50s ~ 10%,
Sek. 6 von 50s ~ 12%.
Die Keyframes incl. der Deckkraft notiere ich also folgendermaĂen:
CSS
@keyframes slideShow {
0% {
opacity:0;
}
2% {
opacity:1;
}
10% {
opacity:1;
}
12% {
opacity:0;
}
}
… und die Verzögerung fĂŒr die folgenden Bilder schreibe ich wieder in die :nth-child()-Pseudoklassen der "list items":
CSS
.slideshow li:nth-child(1) { ... animation-delay: 0s;}
.slideshow li:nth-child(2) { ... animation-delay: 5s;}
.slideshow li:nth-child(3) { ... animation-delay: 10s;}
.slideshow li:nth-child(4) { ... animation-delay: 15s;}
.slideshow li:nth-child(5) { ... animation-delay: 20s;}
.slideshow li:nth-child(6) { ... animation-delay: 25s;}
.slideshow li:nth-child(7) { ... animation-delay: 30s;}
.slideshow li:nth-child(8) { ... animation-delay: 35s;}
.slideshow li:nth-child(9) { ... animation-delay: 40s;}
.slideshow li:nth-child(10) { ... animation-delay: 45s;}
So wird die jeweils folgende Slide mit der gleichen Animation (slideShow) animiert, diese wird allerdings jeweils 5 Sekunden spĂ€ter gestartet. Wenn ich mich bei den Prozent-Angaben zu den Keyframes fĂŒr das Ausblenden nicht völlig verrechnet habe, sollte das Einblenden der jeweils folgenden Slide mit dem Ausblenden der jeweils vorherigen zusammenfallen. Die letzte Slide wird dann also ab Sek. 45 animiert und ab Sek. 50 ausgeblendet, so dass es beim erneuten Einblenden der Slide 1 keinen harten Ăbergang gibt.
So siehts nun aus:
Ob das Timing der Ăberblendungen passt, kann man – wie oben angedeutet – mit einer auffĂ€lligen Hintergrundfarbe des Containers (#slideshow_wrapper) ĂŒberprĂŒfen. Wenn nĂ€mlich die eine Slide bereits aus-, die folgende aber noch nicht eingeblendet ist, sieht man den (hier: roten) Hintergrund durchscheinen. Dann kann man
- die letzten Keyframes evtl. zeitlich etwas nach hinten korrigieren oder
- eine neutrale Hintergrundfarbe (z.B. schwarz, grau oder weiĂ) nutzen. đ
4.2 Die Bewegung
Neben der Ăberblendung gibt eine kleine (wirklich: Hier ist weniger mehr!) Bewegung der Slideshow den letzten Schliff. DafĂŒr nutze ich eine Skalierung (transform: scale()) und eine Drehung (transform:rotate()).
Diese lege ich an den bereits bestehenden Keyframes ganz am Anfang bzw. ganz am Ende der Animation fest; so verlĂ€uft die Bewegung auch ĂŒber die Ein- und Ausblendung hinaus konstant. Bei der Kombination mehrerer CSS-Transformationen schreibt man alle in eine Deklaration. Hier wird also eine Skaierung (von scale(1.1); zu scale(1.3);) und eine Drehung um 3 Grad (von rotate(-1.5deg); zu rotate:(1.5deg);) kombiniert.
CSS
@keyframes slideShow1 {
0% {
opacity: 0;
transform: scale(1.1) rotate(-1.5deg);
}
2% {
opacity: 1;
}
10% {
opacity: 1;
}
12% {
opacity: 0;
transform: scale(1.3) rotate(1.5deg);
}
}
Hier. Version 1 ist fertig:
5. Variationen
Die Version 1 und ein paar weitere Spielereien gibt es hier zum Download:
Beispiel 1: Der "Standard" von oben. 10 Bilder, je 5 Sek., mit Blende, Zoom und Drehung – Download hier
Beispiel 2: Slideshow als Hintergrund im "Vollbild" – Download hier
Beispiel 3: Kombination von zwei verschiedenen Animationen fĂŒr gerade und ungerade Slides – Download hier
Beispiel 4: "Laufband" statt Ăberblendung – Download hier
… und wegen dieser Frage noch ein BSP 4b: "Laufband" mit Links – Download hier
Beispiel 5: ZusĂ€tzliche Animation von Texten – Download hier
Beispiel 6: Alles bewegt sich! – Download hier
Viel SpaĂ beim Basteln đ
Nachtrag: In einem anderen Projekt bin ich beinahe daran verzweifelt, warum der Internet Explorer 11 die Animation ums sprichwörtliche Verrecken nicht abspielen wollte. An dieser Stelle habe ich einen wertvollen Hinweis zur Platzierung der @keyframe-Section innerhalb des Stylesheets gefunden: Je weiter vorne, desto eher IE-UnterstĂŒtzung. ?
"Animierte Slideshows" von Martin Smaxwil ist unter einer CC BY 4.0-Lizenz veröffentlicht.
DarĂŒber hinausgehende Hinweise zu Bestandteilen wie Code Snippets u.Ă€. findet man hier.

GroĂartiges Tutorial.
Danach hab ich ewig gesucht. es gibt tausende Slider Tutorials, aber nirgends ist es besser erklÀrt als hier.
Super animierte Slideshow, leider lÀufts bei mir nicht, bin am verzweifeln.
Hm, wie schade. Gibts einen Link, dann schaue ich mal. Vielleicht kriegen wir das gelöst?
Vielen Dank fĂŒr das Angebot, habe es nach 4 Stunden doch noch hinbekommen. FĂŒr heute reicht es.
Schönen Abend.
Ok, gerne. Ansonsten gerne melden, per Mail
oder Kommentar đ
Der slider ist spitze!
Gibt es die Möglichkeit, Links auf die einzelnen Sliderbilder zu setzen? Also das diese auf verschiedene Unterseiten verlinkt werden?
Danke schonmal fĂŒr die RĂŒckmeldung!
Lg lena
Hallo. Prinzipiell kann man "einfach" in jeden Listenpunkt einen Hyperlink einbauen. Allerdings wird das Ein- und Ausblenden in dem meisten Beispielen mittels opacity gemacht. Dabei werden die Slides fĂŒr den/die Betrachter:in ausgeblendet, im Code bleiben sie aber stehen und fĂŒr den Browser sind sie auch "noch da". Daher wĂŒrde jede Slide immer den Link der letzten Slide aufrufen, das liegt am stacking context (Details) von absolut positionierten Elementen, bei denen das letzte Element als oberstes gerendert wird.
Bei visibility:hidden hĂ€tte man das gleiche Problem wie bei opacity:0, mit display:none oder z-index könnte man das bestimmt lösen, die Eigenschaften sind aber nicht oder nur ĂŒber Umwege zu animieren. đ
Es funktioniert aber mit der Slideshow aus Beispiel 4, bei dem die Slides horizontal verschoben werden. Dann wird der Link einfach mit der Slide mitverschoben. Ein Beispiel 4b habe ich als Vorlage im Abschnitt "Variationen" hinzugefĂŒgt.
Hoffe, das hilft?
Ja hat geklappt! Vielen Dank đ
Hallo!
Ein super Script mit einem super Tutorial.
Eine Frage: Die Breite der Bilder passt sich ja dank prozentualer Angabe responsiv schön an die SeitengröĂe an. Die Höhe der Bilder ist fix als "Pixel" angegeben. Gibt es eine Möglichkeit, dass sich BildgröĂe responsiv proportional Ă€ndert?
Schonmal Danke fĂŒr die RĂŒckmeldung!
Hallo Rolf,
Du könntest dem
#slideshow_wrapperstatt Breite und Höhe eine Breite und ein SeitenverhÀltnis (responsiv + proportional) mitgeben:#slideshow_wrapper {
width:100%;
aspect-ratio: 16 / 9;
}
So sollte die Slideshow immer die volle Seiten- oder Containerbreite haben und das SeitenverhÀltnis beibehalten. Details zu
aspect-ratiofindest Du hier: https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio. (Als ich den Artikel vor 5 Jahren geschrieben habe, gabs das – glaube ich – noch nicht đ )Hoffe, das hilft,
LG,M
Danke fĂŒr die umgehende Antwort. Klappt perfekt.
Vielen Dank.
LG Rolf
Ich möchte gerne das Beispiel 5 fĂŒr meine Homepage nutzen. Wie kann ich den CSS Code und den html Code herunterladen? Ich habe dazu unter "download" keinen Code finden können. Der Code den mir der Browser anzeigt funktioniert irgendwie nicht korrekt.
Hi.
Dieser Link sollte eigentlich funktionieren; ggf. mit rechter Maustaste und "Ziel speichern unter" lokal speichern. Die *.html-Datei sollte sich in jedem gÀngigen Browser öffnen lassen und "laufen".
Die *.html-Datei kann man auĂerdem mit jedem beliebigen (Text-, besser Code-) Editor öffnen. Der CSS-Code steht recht weit oben im
<style>-Abschnitt, das HTML-GerĂŒst entsprechend im<body>.Wenn das nicht klappt, gerne noch mal melden.
Vielen Dank. Auf diese Weise habe ich es herunterladen können. Allerdings wird es bei mir auf der Seite anders dargestellt. Der Text ist unter dem Slider (siehe: [Link entfernt])
… die Texte sind im meinem Beispiel in
<span class="slidetext">gewrapped. Daran sind auch die notwendigen CSS-Angabenposition:absolute;und mehr geknĂŒpft. Die sind auf Deiner Seite nicht vorhanden.Evtl. bereinigt Dein CMS (Joomla kenne ich leider kaum) den HTML-Code?
Ja das scheint das Problem zu sein die Elemente fliegen tatsÀchlich nach dem Speichern raus. Das ist ja doof :/
Du könntest die
<span>-Elemente mal durch<div>-Elemente ersetzen. Vllt. ist die Bereinigung da etwas gnÀdiger?Ja mit
<div>klappt es! Super vielen Dank fĂŒr die Hilfe! đHab doch noch eine Frage. Wie bekomme ich den Text bzw. diese Textboxen mittig zentriert? Im Moment werden die ganz links dargestellt.
Ah. Meine Beispieltexte sind so lang, dass im Beispiel die Textboxen automatisch meist die ganze Breite einnehmen.
Um die Textbox zu zentrieren, könntest Du
.slidetextzusĂ€tzlichleft: 50%;undtransform: translateX(-50%);hinzufĂŒgen. Das erste macht einen Abstand links von 50% des Elterncontainers. Das zweite rĂŒckt die Textbox wieder 50% der eigenen Breite wieder nach links.Um den Text innerhalb der Textbox zu zentrieren (z.B. bei kurzen Ăberschriften ĂŒber lĂ€ngeren Textzeilen könntest Du
.slidetextzusĂ€tzlichtext-align: center;hinzufĂŒgen.Danke! Leider ist es trotzdem nicht ganz mittig (sowohl generell rechts/links auf der Seite als auch innerhalb der Textbox oben/unten. Und aus irgendwelchen GrĂŒnden (?) wird nur noch die erste Textbox "Herzlich Willkommen" angezeigt, obwohl ich bei jedem Bild eine Textbox hinterlegt habe (mit deinem Code).
… das erste
<div class="slidetext">-div wird nicht geschlossen, so dass die folgenden Texte sich innerhalb des ersten befinden.Und die "Mittigkeit" via
transform:translate();greift nich, da bereits eine Transtormation (translateY) vorhanden ist. Die letztere ĂŒberschreibt die erste. Du kannst beide kombinieren – also alletransform-Angaben löschen und stattdessentransform:translate(-50%;-50%);angeben.Nochmals danke fĂŒr deine Expertise! Nur das mit dem "Zentriereren" der Textbox bekomme ich weiterhin nicht. Habe es jetzt eigentlich so gemacht, wie beschrieben. Aber die Box ist immer noch nicht mittig.
Ups, mein Fehler đ
Die X- und Y-Koordinaten der Transformation mĂŒssen durch Komma (nicht Semikolon) getrennt werden:
transform:translate(-50%,-50%);Sorry!
Jetzt haben wirs đ
Vielen Dank nochmal fĂŒr deinen Support!
Neue Frage: Kann man die Textbox im Slider verlinken? Habe es mit html innerhalb des div-elementes probiert. Das funtkioniert jedoch wohl nicht.
Unklar, was Du meinst. Einen Link in die Textbox einzubauen, geht einfach via HTML (
<a href="">[...]</a>) innerhalb des.slidetext-divs. Aber einen Link zu setzen, der auf eine der Textboxen zeigt, ist nicht möglich. Denn die sind ja quasi "immer da" und nur ĂŒber die Zeitangaben phasenweise ausgeblendet.Man könnte so eine Navigation basteln, wo man ĂŒber so Punkte unten einzelne der Slides anspringen kann (Beispiel: https://codepen.io/rokobuljan/pen/XXzqKQ), das ist aber eine etwas gröĂere Baustelle…
Genau das mit dem html habe ich wie beschrieben versucht. Die Verlinkung wird aber leider nicht angezeigt.
Schuss ins Blaue:
Die Animation beinhaltet nur Angaben zu
opacity, was nur die Deckkraft beeinflusst. Die anderen Textfelder der folgenden Folien sind also noch "da", aber mit Deckkraft 0 ĂŒberlagern sie die "Klickbarkeit" der vorherigen Textfelder. Denn der sog. "stacking context" sorgt dafĂŒr, dass die Elemente in der Reihenfolge gerendert werden, in der sie im HTML-Code stehen. Wenn mehrere absolut positionierte Objekte an gleicher Stelle gerendert werden, ĂŒberlagern die letzten die ersten, auch wenn die Deckkraft 0 ist đ€ŻKurz: Ăndere mal die Animation zu
1% {
opacity: 0;
z-index:1;
}
2% {
opacity: 1;
z-index:10;
}
9% {
opacity: 1;
z-index:10;
}
10% {
opacity: 0;
z-index:1;
}
Damit wird gleichzeitig zur Deckkraft auch das jew. Element in den Vordergrund (
z-index= auf der z-Achse) geschoben…Funktioniert! Vielen Dank đ Jetzt versuche ich mich als nĂ€chstes noch an dieser Navigation und fĂŒrchte, dass ich das auch nicht allein hinbekomme đ
Jetzt hat sich bei mir doch noch eine Frage aufgetan: Der Slidetext ist jetzt soweit im Vordergrund, dass er beim Scrollen nach unten den Header ĂŒberdeckt (was unschön aussieht). Wie bekommt man den Headerbereich wieder vor die Textbox?
… der
.container-headerhat auch einenz-index: 10;. Dann nimm fĂŒr die Keyframes bei 2% und 9% der Animation z.B.z-index:5;, also auf jeden Fall < 10 đSchöne Anleitung, danke!
Aber im HTML darf es doch nicht
#slideshow_wrapperheiĂen, sondern ohne die Raute davor. Die kommt ja nur ins CSS.Viele GrĂŒĂe
Torsten
Haha đ – Du hast so recht. Wie oft wurde der Code wohl seit 2018 (!) kopiert und sich geĂ€rgert, dass er nicht funktioniert…
Habe ich mal angepasst, Danke fĂŒr den Hinweis!
(Da der
<code>-Tag aus Deinem Kommentar gelöscht wurde, habe ich den sinngemÀà – hoffentlich wie intendiert – wieder hinzugefĂŒgt.)Klar doch, das passt schon. Stimmt ja, mit HTML-Code in Kommentaren ist es immer so eine Sache, da hab ich wohl nicht richtig dran gedacht. Dann sind wir ja jetzt sozusagen quitt. đ