Beiträge von Sempervivum

    Zitat

    Kann man das den so auf alle Elemente und Links und Schrieft anwenden ?

    Grob gesagt kann man mit CSS alles animieren, was eine Maßeinheit bzw. ein Zahlenwert ist wie top, left, width, height etc. Wobei Farbe eine Ausnahme ist, aber Farben werden ja auch als Zahlenwerte definiert. Bzgl. Schrift kann man die Farbe animieren aber nicht den Text. Also für einen Countdown 100 auf 0 braucht man ein Skript, das geht nicht mit CSS.

    Zitat

    ein Auto mit drehender Felge

    Auch das kann man sehr gut mit einer CSS-Animation machen: transform:rotate(). Basti kennt sich damit aus.

    Da musst Du dich zunächst mal zwischen dem Grafikformat entscheiden: Vektor bzw. SVG oder Bitmap bzw. HTML5-Canvas. SVG hat den Vorteil, dass es beliebig skalierbar ist. Deshalb bin ich in letzter Zeit mehr in diese Richtung gegangen, während ich mit Canvas und der Bibliothek jCanvas angefangen habe. jCanvas hat eine sehr übersichtliche Doku wo man alles schnell findet und die leicht zu verstehen ist.

    Bei SVG habe ich bisher d3.js verwendet. Dieses scheint zwar sehr mächtig zu sein, ich hatte aber einige Probleme, Anleitungen zu den einfachen Funktionen, wie Linien, Kreise, Kreissegmente zu finden. Habe aber immer etwas gefunden und bin zum Ziel gekommen. Bin aber damit noch am Anfang und habe bei weitem noch nicht viele Möglichkeiten ausgeschöpft.

    Hier ein Beispiel mit d3.js:

    https://jsfiddle.net/Sempervivum/40kLdxr0/10/

    Man kann sehr viel mit CSS-Animationen machen ohne Javascript, Timer und Schleifen. Nicht alles ist auch empfehlenswert, aber für diesen Fall ist es sehr gut geeignet und leicht zu lesen:
    https://jsfiddle.net/Sempervivum/Lqr3go8q/

    Wenn Du es jedoch programmieren wolltest, würde sich HSL am besten eignen, weil Du dann nur den Hue-Wert ändern musst, um verschiedene Farben zu bekommen.

    Der Hex-Farbcode ist auch nur RGB, wobei die Farben im Hex-Format, zweistellig, aneinander gereiht sind.

    https://de.wikipedia.org/wiki/Hexadezimalsystem

    Wenn ich die Elemente so anordne:

    Und dem div#snow die Eigenschaft pointer-events:none gebe:

    Code
    #snow {
                pointer-events: none;

    funktioniert es bei mir einwandfrei.

    Das Problem bei deinem Versuch in #120 war, dass Du nicht dem div#snow die Eigenschaft pointer-events:none gegeben hast, sondern einem ganz anderen.

    Dass es nicht funktioniert, liegt daran, dass Du mit innerHTML den Inhalt der gesamten Box überschrieben hast, so dass er hier:

    Code
    var dayClicked = parseInt(this.children[0].innerHTML);

    den geklickten Tag nicht mehr findet, weil das Element jetzt das Bild ist.

    Du musst das Bild in das zweite content-span eintragen, so:

    Code
    this.children[1].innerHTML = '<img src="./img/gif' + dayClicked + '.gif" />';

    Sehr gut, dann braucht man nur classlist.add durch classlist.toggle zu ersetzen:

    Das Bild kannst Du mit diesem CSS in den Vordergrund bringen:

    Code
            .door.open {
                background-color: transparent;
                opacity: 1;
                position: relative;
                z-index: 999;
            }

    Für das Schließen gibt es mehrere Möglichkeiten:

    • In das Bild klicken
    • In einer Ecke des Bildes ein Kreuz-Symbol für das Schließen anbringen

    Was wäre dir lieber?

    Zitat

    Vermisse da nur die dunklen Töne wie Schwarz und Braun,oder ich habe was Falsch gemacht?

    Nein, Du hast nichts falsch gemacht. HSL bedeutet hue (Farbton), saturation (Sättigung) und lightness (Helligkeit). Und wie Du siehst, habe ich nur den Farbton zufällig gemacht. Die Absicht war, möglichst leuchtende Farben (max. Sättigung) zu bekommen. Wenn Du auch die dunklen (braun, schwarz) und hellen (weiß) Farben bekommen willst, musst Du auch die Helligkeit zufällig machen:

    https://jsfiddle.net/Sempervivum/bnefbkwu/5/

    Das ist CSS. Bei CSS gibt es bestimmte Regeln, wenn die selbe Eigenschaft mehrmals definiert wird. Die wichtigsten:

    • Die Reihenfolge, was zuletzt kommt, überschreibt alles davor.
    • Der Selektor, der spezifischer ist, setzt sich durch, z. B. div.theclass ist spezifischer als einfach div und die betr. Eigenschaften setzen sich durch.
    • !important veranlasst, dass sich die Eigenschaft durchsetzt.
    • Eigenschaften, die mit Javascript zugewiesen wurden, haben höchste Priorität.