Forum: PC-Programmierung CSS only Slider


von Petr (Gast)


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

von Ivo -. (Gast)


Lesenswert?

Hallo,
also so spontan würde ich sagen, dass das nicht funktioniert, ganz 
sicher bin ich mir aber nicht...
Was spricht denn gegen JavaScript?

Ivo

von anonym (Gast)


Lesenswert?

css-animations mit keyframes

ohne probieren - nur mal als schlagwort in den raum gestellt

von Petr (Gast)


Lesenswert?

css-animations mit keyframes

funktioniert perfekt...
=> danke ;)

von Kolja L. (kolja82)


Lesenswert?

zeig mal den Code

von Daniel A. (daniel-a)


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.

von Wolfgang S. (ws01)


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

von Karl (Gast)


Lesenswert?

Wolfgang S. schrieb:
> Alte und neue Möglichkeiten des Mißbrauchs von clientseitig ausgeführtem
> turingvollständigen Code...

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

von Daniel A. (daniel-a)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.