Beiträge von Sempervivum

    Ich wüsste nicht, dass in Canvas eine direkte Texteingabe möglich ist. Ich habe so etwas mal selbst zusammen gebaut, indem ich die Tastatureingabe abgefragt habe:

    Code
                        $(document).off("keypress").on('keypress', function (event) {
                            if (active) {
                                txt += String.fromCharCode(event.which);
                                $(canvas).setLayer('text' + thisobj.idText, { text: txt + "|" })
                                    .drawLayers();
                            }
                        });

    http://ulrichbangert.de/div/webentwick…rawing-pad.html

    Mit jCanvas realisiert, "Text" auswählen und in das Rechteck klicken.

    In deinem Fall würde ich jedoch die Lösung mit Plus- und Minustasten vorziehen, weil Du dann die Eingabe nicht zu überprüfen brauchst, ob sie zulässig ist (nummerisch und Wertebereich).

    Ich würde dir ja gern helfen, aber leider gehen mir die Joomla-Kenntnisse ab. Hast Du die Filterung selber programmiert? Wenn ja, kannst Du sicher einen Hinweis geben, in welchem der zahlreichen JS-Files der Code steht. Generell ist es nämlich kein Problem, eine Aktion erst dann auszuführen, wenn in allen Selects etwa ausgewählt wurde.

    In einer for-Anweisung kann man für die Startaktionen mehrere Anweisungen, durch Komma getrennt, notieren. In diesem Fall werden die Variablen x, y und nr auf ihre Anfangswerte gesetzt. xstart ist der Anfangswert für die x-Position und ystart der für die y-Position.

    In deinem Code hast Du es etwas anders gemacht, indem Du nur eine Zählvariable i führst und die Position daraus berechnest. Das geht natürlich genau so gut.

    Selbstverständlich:

    Zitat

    Ich möchte aber beide haben: Einmal in blue und einmal in red.

    Ach so, dann habe ich dich ganz falsch verstanden: Wenn Du zwei Boxen haben willst, musst Du sie nacheinander zeichnen, z. B. mit drawRect(), und ihnen unterschiedliche Namen geben. setLayer() dient dazu, einen vorhandenen Layer nachträglich zu ändern.

    Die Funktion alignText() richtet den Text rechts aus:

    Möglicher Weise musst Du das in der Funktion, die den Balken aktualisiert, auch noch einfügen.

    Code
    <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>
    
    <script src="jcanvas.min.js"></script>

    Die erste Zeile reicht aus. Für die zweite Zeile musst Du jCanvas herunter laden und lokal bzw. auf deinem Webspace ablegen.

    Zitat

    muss ich dann ,siehe Bild, mehrere Canvas anlegen wenn ich z.B. unterschiedliche Schriften haben will?,

    Nein, Du kannst die Farben, Schriftarten etc. während des Zeichnens umschalten. fillStyle z. B. wirkt nur auf das, was danach gezeichnet wird und verändert nicht das, was davor gezeichnet wurde. Ich möchte jetzt nicht einsteigen und Beispiele dafür geben, sondern empfehlen lieber gleich eine Bibliothek wie jCanvas zu verwenden. Dort gibt man die Eigenschaften direkt beim Zeichnen des Objektes an und kann sie später auch noch ändern. IMO ist dies wesentlich klarer.

    https://projects.calebevans.me/jcanvas/docs/text/