Je souhaite dessiner sur un canevas HTML à l'aide d'une souris (ex: dessiner une signature, dessiner un nom, ...)
S'il vous plaît, aidez-moi comment puis-je faire? Veuillez donner du code source. Je vous remercie
html
canvas
gesture-recognition
gestures
MartinJoo
la source
la source
Réponses:
Voici un exemple de travail.
la source
canvas.offsetLeft;
etcanvas.offsetTop;
aveccanvas.getBoundingClientRect().left;
etcanvas.getBoundingClientRect().top;
respectivement pour résoudre le problème de défilement.touchmove
,touchstart
,touchend
Puis leclientX
vient dee.touches["0"].clientX
dans lefindxy()
code, n'ont pas pensé à un moyen facile de détecter ce qui est utilisé si, comme vous ne pouvez pas écouter les deux événements en même temps de ce que je l' ai testé. Je suis partimouseout
tel quel. Ce n'est pas parfait, mais cela fonctionneVoici le moyen le plus simple de créer une application de dessin avec un canevas:
mousedown
,mousemove
etmouseup
écouteur d'événement sur la toile DOMmousedown
, obtenez les coordonnées de la souris et utilisez lamoveTo()
méthode pour positionner votre curseur de dessin et labeginPath()
méthode pour commencer un nouveau chemin de dessin.mousemove
, ajoutez en continu un nouveau point au tracé aveclineTo()
et coloriez le dernier segment avecstroke()
.mouseup
, définissez un indicateur pour désactiver le dessin.À partir de là, vous pouvez ajouter toutes sortes d'autres fonctionnalités, comme donner à l'utilisateur la possibilité de choisir une épaisseur de ligne, une couleur, des coups de pinceau et même des calques.
la source
Je pense que d'autres exemples ici sont trop compliqués. Celui-ci est plus simple et JS uniquement ...
la source
if (e.buttons !== 1) return;
;-).resize
fonction. Je règle la largeur et la hauteur de la toile en fonction de la taille de la fenêtre. Vous devez les définir en fonction de votre<div class="container-fluid">
.offset
dans lasetPosition
fonction ...Googlé ceci ("programme de peinture de toile html5"). Ressemble à ce dont vous avez besoin.
http://dev.opera.com/articles/view/html5-canvas-painting/
la source
vérifiez ceci http://jsfiddle.net/ArtBIT/kneDX/ . Cela devrait vous orienter dans la bonne direction
la source
Je cherchais également à utiliser cette méthode pour les signatures, j'ai trouvé un échantillon sur http://codetheory.in/ .
J'ai ajouté le code ci-dessous à un jsfiddle
Html:
Javascript:
la source
Voici ma toile de travail très simple dessiner et effacer.
https://jsfiddle.net/richardcwc/d2gxjdva/
la source
Alco vérifier celui-ci:
Exemple:
https://github.com/williammalone/Simple-HTML5-Drawing-App
Documentation:
http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/
Ce document comprend les codes suivants: -
HTML:
JS:
Et un autre exemple génial
http://perfectionkills.com/exploring-canvas-drawing-techniques/
la source
Je devais fournir un exemple simple pour ce sujet donc je vais partager ici:
http://jsfiddle.net/Haelle/v6tfp2e1
la source
Cela fait des années que la question a été posée et a reçu une réponse.
Pour tous ceux qui recherchent un canevas de dessin simple (par exemple, pour prendre la signature de l'utilisateur / client), je publie ici une version jquery plus simplifiée de la réponse actuellement acceptée
la source
Faites-moi savoir si vous rencontrez des difficultés pour la mettre en œuvre. Il utilise processing.js et possède des fonctionnalités pour changer les couleurs et agrandir de plus en plus le point de dessin.
la source
init.js
?Une version super courte, ici , sans
position:absolute
JavaScript vanille. L'idée principale est de déplacer le contexte du canevas vers les bonnes coordonnées et de tracer une ligne. Uncommentclick
gestionnaire et commentairesmousedown
etmousemove
gestionnaires ci - dessous pour avoir une idée de la façon dont il fonctionne.la source
si vous avez une image d'arrière-plan pour votre toile, vous devrez faire quelques ajustements pour qu'elle fonctionne correctement car une astuce d'effacement du blanc masquera l'arrière-plan.
voici l' essentiel du code.
la source