Перетащите изображение внутри холста, не затрагивая уже добавленные элементы - PullRequest
0 голосов
/ 22 октября 2018

У меня есть требование, которое я стараюсь выполнить следующим образом.

Я добавляю изображение на холст, затем добавляю другое изображение на холст и позволяю пользователю вводить его имя, чтобы мы могли добавить это имя на второе изображение.Затем, когда пользователь нажимает кнопку «Добавить бриллиант» , на холст добавляется третье изображение (пока все хорошо).

Теперь мне нужно разрешить пользователю перетаскивать третье изображение изposition, он был добавлен в позицию внутри холста.

Так что при добавлении функции перетаскивания мне нужно сделать холст пустым, что приведет к удалению обоих уже добавленных изображений.Поэтому мне нужно дать функциональность перетаскивания, не затрагивая уже добавленные элементы.

Вот мой код:

var canvas = document.getElementById('canvas');
// canvas.width = canvas.scrollWidth;

var ctx = canvas.getContext('2d');

var image = new Image();
//callback functionwhen image is loaded
image.onload = function() {


  ctx.drawImage(image, 10, 10, 198, 108);
}

image.src = 'https://lorempixel.com/150/150?1';
var Text = '';

function AddImageToCanvas() {
  var imageToAdd = new Image();

  imageToAdd.src = 'https://lorempixel.com/150/150';
  imageToAdd.onload = function() {
    ctx.drawImage(imageToAdd, 60, 100, 100, 60);
    ctx.font = "10px Arial";
    Text = 'sample text';
    // ctx.fillText(Text, 70, 110);
    ctx.save();
    ctx.translate(10, 30);
    ctx.rotate(-45);
    ctx.fillText(Text, -30, 150);
    ctx.restore();
    //var img = canvas.toDataURL("image/png");
    //document.write('<img src="' + img + '"/>');
  }
}

function AddDiamondImageToCanvas() {
  var DiamondImage = new Image();
  DiamondImage.src = 'https://lorempixel.com/30/30';
  DiamondImage.onload = function() {
    ctx.drawImage(DiamondImage, canvas.width - 15, canvas.height - 15, 15, 15);
  }
}
<canvas style=" height:490px;width:800px; border:1px solid;" id="canvas">Sorry your browser does't support canvas</canvas>
<input type="text" id="textToAdd" />
<a onclick="AddImageToCanvas()">Add image</a>
<a onclick="AddDiamondImageToCanvas()">Add Diamond</a>

Для изображения с ромбами (маленькое в фрагменте) мне нужно добавить функцию перетаскивания, поскольку она уже добавлена ​​на холст, если пользователь перетаскивает ее из этой позиции вили около «образца текста» его следует переместить в ту позицию, где он щелкает левой кнопкой мыши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...