Quiero dibujar en un lienzo HTML con un mouse (por ejemplo: dibujar una firma, dibujar un nombre, ...)
Por favor ayúdame, ¿cómo puedo hacerlo? Por favor proporcione algún código fuente. Gracias
html
canvas
gesture-recognition
gestures
MartinJoo
fuente
fuente
Respuestas:
Aquí hay una muestra de trabajo.
fuente
canvas.offsetLeft;
ycanvas.offsetTop;
concanvas.getBoundingClientRect().left;
ycanvas.getBoundingClientRect().top;
respectivamente para solucionar el problema de desplazamiento.touchmove
,touchstart
,touchend
Y luego elclientX
proviene dee.touches["0"].clientX
en elfindxy()
código, no han pensado en una forma fácil de detectar lo que está siendo utilizado, sin embargo, como no se puede escuchar a los dos eventos al mismo tiempo, por lo que he probado. Me fuimouseout
como estaba. No es perfecto, pero funcionaEsta es la forma más sencilla de crear una aplicación de dibujo con lienzo:
mousedown
,mousemove
ymouseup
detector de eventos para el DOM de lonamousedown
, obtenga las coordenadas del mouse y use elmoveTo()
método para colocar el cursor de dibujo y elbeginPath()
método para comenzar una nueva ruta de dibujo.mousemove
, agregue continuamente un nuevo punto a la ruta conlineTo()
y coloree el último segmento constroke()
.mouseup
, establezca una bandera para deshabilitar el dibujo.A partir de ahí, puede agregar todo tipo de otras características, como darle al usuario la capacidad de elegir un grosor de línea, color, trazos de pincel e incluso capas.
fuente
Creo que otros ejemplos aquí son demasiado complicados. Este es más simple y solo JS ...
fuente
if (e.buttons !== 1) return;
;-).resize
función. Estoy configurando el ancho y la altura del lienzo según el tamaño de la ventana. Debes configurarlos en función de tu<div class="container-fluid">
.offset
ensetPosition
función ...Busqué en Google esto ("programa de pintura de lienzo html5"). Parece lo que necesitas.
http://dev.opera.com/articles/view/html5-canvas-painting/
fuente
consulte esto http://jsfiddle.net/ArtBIT/kneDX/ . Esto debería guiarte en la dirección correcta
fuente
También estaba buscando usar este método para las firmas, encontré una muestra en http://codetheory.in/ .
He agregado el siguiente código a un jsfiddle
HTML:
Javascript:
fuente
Aquí está mi lienzo de trabajo muy simple, dibujar y borrar.
https://jsfiddle.net/richardcwc/d2gxjdva/
fuente
Alco verifica este:
Ejemplo:
https://github.com/williammalone/Simple-HTML5-Drawing-App
Documentación:
http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/
Este documento incluye los siguientes códigos: -
HTML:
JS:
Y otro ejemplo impresionante
http://perfectionkills.com/exploring-canvas-drawing-techniques/
fuente
Tuve que proporcionar un ejemplo simple para este tema, así que lo compartiré aquí:
http://jsfiddle.net/Haelle/v6tfp2e1
fuente
Han pasado años desde que se hizo la pregunta y se respondió.
Para cualquiera que busque un lienzo de dibujo simple (por ejemplo, para tomar la firma del usuario / cliente), aquí estoy publicando una versión jquery más simplificada de la respuesta actualmente aceptada
fuente
Avísame si tienes problemas para implementar esto. Utiliza Processing.js y tiene características para cambiar colores y hacer que el punto de dibujo sea más grande y más pequeño.
fuente
init.js
?Una versión súper corta, aquí , sin
position:absolute
JavaScript vanilla. La idea principal es mover el contexto del lienzo a las coordenadas correctas y dibujar una línea. Descomente elclick
controlador y los comentariosmousedown
ymousemove
controladores a continuación para tener una idea de cómo está funcionando.fuente
Si tiene una imagen de fondo para su lienzo, tendrá que hacer algunos ajustes para que funcione correctamente porque el truco de borrado en blanco ocultará el fondo.
aquí hay una esencia con el código.
fuente