Interaktive Textfelder mit Fabric.js
Spiele ich schon mit Fabric.js eine Menge in den letzten paar Wochen, aber in Bezug auf text-Felder habe ich nur gefunden es möglich, den text bei der Erstellung.
Gibt es eine Möglichkeit zu machen eine interaktive text-Feld, oder muss ich einen workaround finden um erfolgreich zu sein? (Mit interaktiven text-Feld meine ich eine Fläche von der Leinwand, ich kann Sie auf und schreiben Sie direkt hinein.)
Kommentar zu dem Problem
was meinst du mit interaktiven text-Feld?
@TheJumpingFrog: Er bedeutet, hinzufügen von text im canvas-Bereich und Bearbeiten Sie den Inhalt später auf.
Genau das, was Marcel sagte
Was ist das Protokoll hier, wenn eine Antwort veraltet ist? Erstellen Sie eine neue Frage, Antwort, und der link zu dieser Frage von der ursprünglichen Frage? Im Grunde ist die akzeptierte Antwort ist nicht mehr korrekt, und die Antwort unten, ist es die richtige Antwort für Menschen auf der Suche nach einer Lösung.
@teewuane können Sie einfach einen Kommentar auf die Frage (wie du hast) und Benachrichtigen Sie den Autor, dass es eine mehr up-to-date-Antwort. Ändern Sie die akzeptierte Antwort ist nur eine Frage der einem Klick 🙂
InformationsquelleAutor der Frage Kappei | 2012-04-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die neueste version von fabric.js enthält eine Klasse IText, beinhaltet die Interaktion für die Bearbeitung und Auswahl von text dynamisch. versuchen Sie den folgenden code mit der neuesten version von fabric.js
InformationsquelleAutor der Antwort melwyn pawar
Ich vor kurzem eine mind-mapping-tool verwenden fabric.js und ich hatte das gleiche problem.
Zu erreichen, was Sie beschrieben haben (ändern Sie den text auf und nach der Erstellung von textuellen Elemente im canvas-Bereich), ich benutzte jquery um zu erkennen, das keydown-Ereignis. Vorausgesetzt, Sie haben die gewünschten textlichen element in das Gewebe Leinwand im folgenden Codeausschnitt wird, ändern Sie den text.
Verwendung dieser Technik, kann ich wählen Sie ein text-element in das Gewebe Leinwand, beginnen Sie mit der Eingabe und der text wird ersetzt. Man könnte es ändern, sodass es nicht löschen Sie den text jedes mal, wenn Sie wählen Sie das element aus.
Gibt es einige Kompromisse mit dieser Methode. Zum Beispiel können Sie nicht wählen Sie text aus, als ob es in eine normale HTML-input-text-element, und es gibt keine blinkenden cursor, also die "virtuellen" cursor immer am Ende des Textes.
Wenn Sie wirklich wollten könnten Sie zeichnen ein blinkender cursor am Ende des Textes.
InformationsquelleAutor der Antwort Tyson
War das, was ich gesucht habe 🙂 vielen Dank!
InformationsquelleAutor der Antwort Kim Jansson
Ich denke, es ist zu spät, aber vielleicht hilfreich für andere.
Es gibt eine demo auf fabricjs zu tun, die genau die gleiche Sache.
InformationsquelleAutor der Antwort pawan jain
vorausgesetzt, Sie haben sowohl die Leinwand und den Rahmen als Variablen in Ihrem Skript:
InformationsquelleAutor der Antwort Saturnix
Versuchen(dies ist aus meiner Anwendung):
InformationsquelleAutor der Antwort Kalvin Klien