Beiträge von Sempervivum

    Für so eine Grafik kannst Du auch SVG sehr gut nehmen. Ich glaube aber kaum, dass das eine oder das andere einfacher ist. SVG hat den Vorteil, dass man es verlustfrei zoomen kann, was bei Canvas nicht der Fall ist.

    Wahrscheinlich meinst Du bei CSS, dass Du etwas animierst. Animieren kannst Du auch mit Canvas, wenn Du eine Bibliothek wie jCanvas verwendest. Dann verhält es sich genau wie bei einer CSS-Animation, dass sich die Form verändert, ohne dass Du die alte löschen musst.

    Am einfachsten wäre es, die Schrift in der Grafik mit dem Vorhang einzufügen. Aber auf der anderen Seite doch nicht so einfach, denn dann müsste sie sich den Falten anpassen. Und das Fest ist ja jetzt vorbei.

    Posting #1000, danke für den Hinweis!

    Zitat

    warum ist die sonne bei vw immer rund und bei prozent wird sie orval wenn man das fenster verkleinert ?

    Dafür gibt es zwei Wege:

    Code
    #sonne {
      width: 20vw;
      height: 20vw;

    Wie Du siehst, habe ich für Breite und Höhe jedes Mal 20vw genommen. Nimmst Du %, bezieht sich die Breite auf die Breite des umgebenden Containers und die Höhe auf die Höhe.

    Code
    background-image: radial-gradient(circle,
        yellow 70%,
        white 70%
      )

    Durch das Schlüsselwort "circle" wird ein Kreis erzwungen, auch wenn der Container rechteckig ist:

    https://jsfiddle.net/Sempervivum/0o8zaLdn/5/

    Du hast vollkommen Recht, um das Seitenverhältnis zu erhalten braucht man Javascript. Eine Ausnahme sind Bilder, dort kann man eine Seite auf 100% und die andere auf auto setzen. Bei der Sonne würde es sich anbieten, ein Bild zu nehmen.

    Auch wenn man einen radialen Farbverlauf mit radial-gradient und circle verwendet, bleibt dieser kreisförmig. Würde sich für den Regenbogen anbieten:https://jsfiddle.net/Sempervivum/0o8zaLdn/4/

    Das ist allerdings etwas verzwickt und unerwartet. Probiere einmal dies:

    Code
        for (a = 1; a <= 10; a++) {
                document.getElementById('aa').innerHTML += '<input type="text" id="jj' + a + '" value="' + a + '">';
                document.getElementById('jj' + a + '').value = 'JJ';
                console.log(document.getElementById('jj' + a + '').getAttribute('value'), document.getElementById('jj' + a + '').value);
            }

    Du siehst, dass die Zuweisung an "value" das Attribut "value" nicht ändert. Jedes Mal wenn Du das innerHTML änderst, wird es neu geparst und das Attribut wird wieder angezeigt.

    Die Lösung besteht darin, das Attribut zu setzen:

    Code
         for (a = 1; a <= 10; a++) {
                document.getElementById('aa').innerHTML += '<input type="text" id="jj' + a + '" value="' + a + '">';
                document.getElementById('jj' + a + '').setAttribute("value", 'JJ');
                console.log(document.getElementById('jj' + a + '').getAttribute('value'), document.getElementById('jj' + a + '').value);
            }

    Macht man es dagegen so:

    Code
        for (a = 1; a <= 10; a++) {
                var inp = document.createElement("input");
                inp.id = "jj" + a;
                inp.value = "JJ";
                document.getElementById('aa').append(inp);
            }

    sieht das Ergebnis im DOM so aus:

    html-seminar.de/woltlab/attachment/1286/

    Der Wert hat wie gewünscht "JJ" aber im DOM ist davon nichts zu sehen. Das HTML wird beim Einfügen nicht geparst.

    PS: Ich hatte mir dein Bild nicht richtig angesehen und die Orientierung des Winkels nicht berücksichtigt. So sollte es passen:

    Meine Lösung:

    Ich meine, ich hatte eine Lösung gepostet, aber ich sehe den Post nicht mehr. Vergessen, abzuschicken? Außerdem sieht dein Code anders aus als ich ihn erinnere. Hast Du ihn editiert?

    Ich konnte mit wenig Aufwand die Funktion für das Aktualisieren erweitern, so dass man auch das Farbschema ändern kann:

    Namen kannst Du ja entspr. deinem Schema ändern.

    Dann würde es so aussehen: