CSS only Slider

Gast #5326841
Lesenswert?

Hi,

dass man mit HTML & CSS einen Slider machen kann, welcher beim klicken 
z.B. 3 verschiedene Textboxen mit einem weichen Übergang machen kann ist 
mir bereits bekannt. Die Frage ist, ist es möglich auch "ohne" klicken 
einen ständigen Durchlauf von Informationen hinzubekommen <- ohne 
Javascript...

das ganze soll etwa so aussehen:

ich habe ein Div in welchen verschiedene spans sind
1
<div>
2
   <span id="text1">Hier könnte Ihre Werbung stehen!<span>
3
   <span id="text2">Das Wetter ist gar nicht mal gut<span>
4
   <span id="text3">Nachts ist es kälter als draußen<span>
5
</div>

nun soll beim Laden der Seite nur das #text1 sichtbar sein... nach 
nSekunden (z.B. 2) kommt #text2 dann #text3 im anschluss wieder #text1

mit Javascript ist das kein Problem, die Machbarkeitsstudie verlangt 
aber nach reinen HTML & CSS.

hat jemand eine Idee?

petr
#5327035
Lesenswert?

Ja, das ist möglich, aber nur für eine fixe maximalmenge an Elementen. 
Man muss keyframe animationen und Regeln für jedes Element für jede 
Anzahl an maximal möglichen Elementen definieren. Hier ein CSS Beispiel 
mit bis zu 3 Elementen: https://jsfiddle.net/qg1urysx/

Langfristig ist das aber nicht wartbar. Ich empfehle statdessen scss zu 
verwenden, um die massive Menge an benötigtem redundantem CSS Code 
generieren zu lassen: https://jsfiddle.net/e0pdow1y/
Hier habe ich $max_rotor_messages mal auf 20 gesetzt, damit kann man bis 
zu 20 Elemente haben, zwischen denen gewechselt wird.

Der Trick ist eine Kombination aus Keyframe animationen und dem css3 
:first-child:nth-last-child(n) trick, der es erlaubt, das erste element, 
und somit auch jedes beliebige nachfolgende, zu stylen, falls das 
parent-element n elemente enthält. Man nutzt dann die Animationen für 
das einblenden. Der css3 trick verwendet man um zu ermitteln, welche 
Animation man braucht, weil man dort nach dem Ausblenden ne nachdem wie 
viele Elemente man hat unterschiedlich lange warten muss, biss man es 
wieder einblendet, und das animation-delay zu setzen, damit nicht alle 
gleichzeitig eingeblendet werden.

Eventuell sollte man noch die diversen vendor prefixes für bessere 
Browserkompatiblität ergenzen. (Also z.B. zusätzlich noch 
-webkit-animation, -moz-animation, @-webkit-keyframe, etc.). Aber ich 
weiss sowieso nicht, seit wann :nth-last-child von den diversen Browsern 
unterstützt worden ist.
#5327085
Lesenswert?

Ivo Z. schrieb:
> Was spricht denn gegen JavaScript?

Alte und neue Möglichkeiten des Mißbrauchs von clientseitig ausgeführtem 
turingvollständigen Code. Beispiele dafür sollten sich rumgesprochen 
haben. Jeder vernünftige Mensch nutzt deklarative Möglichkeiten, wenn 
sie vorhanden sind, statt imperativen Code.

Hier ein ein Beispiel für eine Animation, die ich vor Jahren gemacht 
habe, als proof of concept so als Quelltext eingetippt, mit einer 
unvollständigen Auswahl von vendor-prefixes, funktioniert ohne JS in FF 
und Chrome. Natürlich würde man das dergl. bei ernsthafter Nutzung 
serverseitig generieren, mit den Mitteln, die dort zur Verfügung stehen.

http://www.mystrobl.de/images/wackel/DSCF1365+66.html
#5330337
Lesenswert?

Karl schrieb:
> Schlechte Nachrichten für Dich: HTML5 plus CSS sind schon seit Jahren
> turingvollständig.

Nö, ohne JS nicht, auch wenn es immer wieder gerne behauptet wird. Wenn 
man einen Compiler nach CSS+HTML erstellen wollte, der ohne ständige 
Benutzerinteraktion auskommt, müsste man das halting Problem lösen, weil 
man im vorraus alle erdenklichen Lösungen schon kennen müsste, und das 
halting Problem ist nachweislich unlösbar.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren