Задать вопрос
@lolka02

Почему не работает клонирование canvas?

Пытаюсь клонировать созданный канвас, что то не получается
<div class="small-container">
  <canvas id="myCanvas"></canvas>
</div>
<div id="target">

</div>

var canvas = document.getElementById('myCanvas');
      var context = canvas.getContext('2d');
      var imageObj = new Image();

      imageObj.onload = function() {
        context.drawImage(imageObj, 0, 0, 300, 300);
      };
      imageObj.src = 'https://www.photographyatthesummit.com/wp-content/uploads/2013/03/p-nature43-300x300.jpg';

var clone = canvas.clone();
        var target = $("#target")
        clone[0].getContext('2d').drawImage(canvas[0],0,0, 300, 300);
        target.html(clone);


https://jsfiddle.net/akhur/smypaf74/7/
Что не так ?
  • Вопрос задан
  • 373 просмотра
Подписаться 1 Простой 4 комментария
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Что не так ?

Да всё не так.

Что за clone? - у DOM-узлов такого метода нет. Есть cloneNode. Или используйте jquery (судя по тому, что контекст вы пытаетесь получить у clone[0], так и предполагалось), там clone есть: $(canvas).clone().

Копировать содержимое оригинала вы пытаетесь до того, как оно вообще будет загружено. Выполняйте копирование в onload.

Копируете непонятно откуда:

canvas = document.getElementById('myCanvas');
<...>
drawImage(canvas[0],

Опять же - либо canvas = $('#myCanvas'), либо drawImage(canvas,.

UPD. Должно было быть так?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
А Вы в консоль заглядывать пробовали?
canvas.clone is undefined
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы