Quero desenhar em uma tela HTML usando um mouse (ex: desenhar uma assinatura, desenhar um nome, ...)
Por favor me ajude como posso fazer? Por favor, forneça algum código-fonte. Obrigado
html
canvas
gesture-recognition
gestures
MartinJoo
fonte
fonte
Respostas:
Aqui está um exemplo de trabalho.
fonte
canvas.offsetLeft;
ecanvas.offsetTop;
comcanvas.getBoundingClientRect().left;
ecanvas.getBoundingClientRect().top;
respectivamente para corrigir o problema de rolagem.touchmove
,touchstart
,touchend
E então oclientX
veme.touches["0"].clientX
nofindxy()
código, não ter pensado em uma maneira fácil de detectar o que está sendo usado, porém, como você não pode ouvir os dois eventos ao mesmo tempo do que eu testei. Eu saímouseout
como está. Não é perfeito, mas funcionaEsta é a maneira mais direta de criar um aplicativo de desenho com tela:
mousedown
,mousemove
emouseup
evento ouvinte para o DOM lonamousedown
, obtenha as coordenadas do mouse e usar omoveTo()
método para posicionar o cursor desenho eabeginPath()
método para começar um novo caminho de desenho.mousemove
, adiciona continuamente um novo ponto ao caminho comlineTo()
e pinta o último segmento comstroke()
.mouseup
, defina um sinalizador para desativar o desenho.A partir daí, você pode adicionar todos os tipos de outros recursos, como dar ao usuário a capacidade de escolher a espessura da linha, cor, pinceladas e até camadas.
fonte
Acho que outros exemplos aqui são muito complicados. Este é mais simples e apenas JS ...
fonte
if (e.buttons !== 1) return;
;-).resize
função. Estou definindo a largura e a altura da tela com base no tamanho da janela. Você deve defini-los com base em seu<div class="container-fluid">
.offset
nasetPosition
função ...Pesquisei isso ("programa de pintura de tela html5"). Parece o que você precisa.
http://dev.opera.com/articles/view/html5-canvas-painting/
fonte
verifique este http://jsfiddle.net/ArtBIT/kneDX/ . Isso deve direcioná-lo na direção certa
fonte
Eu estava procurando usar esse método para assinaturas também, encontrei uma amostra em http://codetheory.in/ .
Eu adicionei o código abaixo a um jsfiddle
Html:
Javascript:
fonte
Aqui está o meu desenho e apagamento de tela de trabalho muito simples.
https://jsfiddle.net/richardcwc/d2gxjdva/
fonte
Álcool, verifique este:
Exemplo:
https://github.com/williammalone/Simple-HTML5-Drawing-App
Documentação:
http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/
Este documento inclui os seguintes códigos: -
HTML:
JS:
E outro exemplo incrível
http://perfectionkills.com/exploring-canvas-drawing-techniques/
fonte
Tive que fornecer um exemplo simples para este assunto, então vou compartilhar aqui:
http://jsfiddle.net/Haelle/v6tfp2e1
fonte
Já se passaram anos desde que a pergunta foi feita e foi respondida.
Para quem procura uma tela de desenho simples (por exemplo, para tirar a assinatura do usuário / cliente), aqui estou postando uma versão jquery mais simplificada da resposta atualmente aceita
fonte
Entre em contato se tiver problemas para implementar isso. Ele usa o processing.js e tem recursos para alterar as cores e tornar o ponto de desenho maior e menor.
fonte
init.js
?Uma versão super curta, aqui , sem
position:absolute
no vanilla JavaScript. A ideia principal é mover o contexto da tela para as coordenadas corretas e desenhar uma linha. Remova oclick
manipulador de comentáriosmousedown
e osmousemove
manipuladores de comentário e abaixo para ter uma ideia de como está funcionando.fonte
se você tiver uma imagem de fundo para sua tela, terá que fazer alguns ajustes para que funcione corretamente, pois o truque de apagamento de branco ocultará o fundo.
aqui está a essência do código.
fonte