1
resposta

Código de mudar a cor ao clicar para desenhar não está funcionando

Boa noite, copiei o código exato do professor (ou ao menos é o que eu acho) quando ele apresenta as novas funções anônimas, mas quando clico na tela para desenhar, ele não desenha nada, segue o código abaixo!

<canvas width="600" height="400"></canvas>
<br>
Escolha uma cor <input type="color">

<script>
    var paleta = document.querySelector('input');
    var tela = document.querySelector('canvas');
  var pincel = tela.getContext('2d');
  pincel.fillStyle = 'grey';
  pincel.fillRect(0, 0, 600, 400);
  var desenha = false;

  function desenhaCirculo(evento) {
    if (desenha) {
      var x = evento.pageX - tela.offsetLeft;
      var y = evento.pageY - tela.offsetTop;
      pincel.fillStyle = paleta.value; //Sempre pega o valor atual da paleta
      pincel.beginPath();
      pincel.arc(x, y, 10, 0, 2 * 3.14);
      pincel.fill();
    }
    console.log(x + ',' + y);
  }
  tela.onmousemove = desenhaCirculo;
  // atribuindo diretamente a função anonima
  tela.onmousemove = function() {
    desenha = true;
  }
  // atribuindo diretamente a função anonima
  tela.onmouseup = function() {
    desenha = false;
  }

  //Não parece estar funcionando este código
</script>
1 resposta

Oie Rafael, tudo bem?

Basta trocar o tela.onmousemove por tela.onmousedown.

Pois estar informando no movimento do mouse e não na aplicação do mouse.

tela.onmousemove = desenhaCirculo; // atribuindo diretamente a função anonima tela.onmousedown = function() { desenha = true; } // atribuindo diretamente a função anonima tela.onmouseup = function() { desenha = false; }

Qualquer duvida estou a disposição.