Ich möchte mit einer Maus auf eine HTML-Leinwand zeichnen (z. B. eine Signatur zeichnen, einen Namen zeichnen, ...)
Bitte helfen Sie mir, wie kann ich tun? Bitte geben Sie einen Quellcode an. Danke dir
html
canvas
gesture-recognition
gestures
MartinJoo
quelle
quelle
Antworten:
Hier ist ein Arbeitsbeispiel.
quelle
canvas.offsetLeft;
undcanvas.offsetTop;
mitcanvas.getBoundingClientRect().left;
undcanvas.getBoundingClientRect().top;
jeweils das Scrollen Problem zu beheben.touchmove
,touchstart
,touchend
Und dann dasclientX
kommt vone.touches["0"].clientX
imfindxy()
Code, nicht von einer einfachen Art und Weise gedacht zu erkennen , was allerdings verwendet werden ist, da Sie nicht auf beiden Ereignisse zur gleichen Zeit von dem, was ich habe getestet hören. Ich gingmouseout
wie es ist. Es ist nicht perfekt, aber es funktioniertHier ist der einfachste Weg, eine Zeichenanwendung mit Leinwand zu erstellen:
mousedown
,mousemove
undmouseup
Ereignis - Listener auf die Leinwand DOMmousedown
, bekommen Sie die Mauskoordinaten und die VerwendungmoveTo()
Methode Zeichnung Cursor und die PositionierungbeginPath()
Methode eine neue Ziehweg zu beginnen.mousemove
, kontinuierlich einen neuen Punkt zu dem Pfad mit ADDlineTo()
und die Farbe das letzte Segment mitstroke()
.mouseup
, einen Flag gesetzt um die Zeichnung zu deaktivieren.Von dort aus können Sie alle Arten anderer Funktionen hinzufügen, z. B. dem Benutzer die Möglichkeit geben, eine Strichstärke, Farbe, Pinselstriche und sogar Ebenen auszuwählen.
quelle
Ich denke, andere Beispiele hier sind zu kompliziert. Dieser ist einfacher und nur JS ...
quelle
if (e.buttons !== 1) return;
;-).resize
Funktion. Ich stelle die Breite und Höhe der Leinwand basierend auf der Fenstergröße ein. Sie sollten diese basierend auf Ihrem festlegen<div class="container-fluid">
.offset
insetPosition
Funktion hinzufügen ...Googelte dies ("HTML5 Canvas Paint Programm"). Sieht aus wie was Sie brauchen.
http://dev.opera.com/articles/view/html5-canvas-painting/
quelle
Überprüfen Sie diese http://jsfiddle.net/ArtBIT/kneDX/ . Dies sollte Sie in die richtige Richtung lenken
quelle
Ich wollte diese Methode auch für Signaturen verwenden. Ich fand ein Beispiel auf http://codetheory.in/. .
Ich habe den folgenden Code zu einer jsfiddle hinzugefügt
Html:
Javascript:
quelle
Hier ist meine sehr einfache Arbeitsfläche zeichnen und löschen.
https://jsfiddle.net/richardcwc/d2gxjdva/
quelle
Alco prüfe dies:
Beispiel:
https://github.com/williammalone/Simple-HTML5-Drawing-App
Dokumentation:
http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/
Dieses Dokument enthält folgende Codes: -
HTML:
JS:
Und noch ein tolles Beispiel:
http://perfectionkills.com/exploring-canvas-drawing-techniques/
quelle
Ich musste ein einfaches Beispiel für dieses Thema liefern, damit ich es hier teilen kann:
http://jsfiddle.net/Haelle/v6tfp2e1
quelle
Es ist Jahre her, seit die Frage gestellt und beantwortet wurde.
Für alle, die nach einer einfachen Zeichenfläche suchen (z. B. um die Unterschrift des Benutzers / Kunden zu erhalten), veröffentliche ich hier eine vereinfachte jquery-Version der aktuell akzeptierten Antwort
quelle
Lassen Sie mich wissen, wenn Sie Probleme bei der Implementierung haben. Es verwendet process.js und verfügt über Funktionen zum Ändern von Farben und zum Vergrößern und Verkleinern des Zeichenpunkts.
quelle
init.js
?Wenn Sie ein Hintergrundbild für Ihre Leinwand haben, müssen Sie einige Anpassungen vornehmen, damit es ordnungsgemäß funktioniert, da der weiße Löschtrick den Hintergrund verdeckt.
Hier ist ein Kern mit dem Code.
quelle
Eine super kurze Version hier ohne
position:absolute
Vanille-JavaScript. Die Hauptidee besteht darin, den Kontext der Leinwand an die richtigen Koordinaten zu verschieben und eine Linie zu zeichnen. Kommentieren Sie denclick
Handler und die Kommentar-mousedown
undmousemove
Handler unten aus, um ein Gefühl dafür zu bekommen, wie es funktioniert.quelle