Beiträge von Sempervivum

    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.

    Wie diese Seite es macht, weiß ich nicht, aber ich würde es so machen:

    Erfordert jQuery, Du musst es einbinden, damit es funktioniert.

    Hiermit:

    data: { img: dataURL, tgroup : tgroup }

    übergibst du nicht den Inhalt des input-Feldes sondern das ganze DOM-Element. So sollte es funktionieren:

    Code
                    var canvas = document.getElementById('mycanvas');
                    var dataURL = canvas.toDataURL();
                    var grp = document.getElementById('tGroup').value;
                    $.ajax({
                        type: "POST",
                        url: "savepic.php",
                        data: { img: dataURL, tgroup: grp }
                    }).done(function (msg) {
                        alert(msg);
                    });

    Und mit dem PHP bist Du ja schon auf dem richtigen Wege: