Почему я не могу нарисовать изображение на холсте?

0

У меня есть холст и div с уменьшенными изображениями. Я хочу перетащить один из уменьшенных изображений в холст. Когда изображение нажимается, src следует сохранить так, чтобы, если это изображение упало в холст, я получаю рисунок в исходном масштабе. По какой-то причине этот код не работает...

HTML

<div id="LeftColumn">
    <canvas id="Canvas">
    </canvas>
</div>

<div id="TextureViewInside">
    <ul class="products">
        <img onclick="getSource(this.src)" id="firstPic" src="FärgadePapper.png">
            <img src="Hajar.png">
            <img src="Labyrint.png">
            <img src="Martini.png">
            <img src="FärgadePapper.png">
    </ul>
</div>

Javascript

function first(){
    canvas = document.getElementById('Canvas');
    var ctx = canvas.getContext("2d");
    canvas.addEventListener("dragenter", function(e){e.preventDefault();}, false);
    canvas.addEventListener("dragover", function(e){e.preventDefault();}, false);
    canvas.addEventListener("drop", dropped, false);
}
function getSource(scr){
    alert(src);
    a = new image();
    a.src = src;
}
function dropped(){
    canvas.drawImage(a, 0, 0);
}
window.addEventListener("load", first, false);
  • 0
    Ваша разметка с <ul> вокруг изображений недействительна, если вы заботитесь о подобных вещах. Элемент <ul> должен иметь в качестве дочерних только элементы <li> .
  • 0
    Кроме того, вы, вероятно, получаете ошибки в консоли. Вы должны всегда проверять это и включать ошибки в свои вопросы SO.
Показать ещё 1 комментарий
Теги:
image
canvas
src

1 ответ

1

Должно быть new Image(), а не "изображение" с нижним регистром "i". Кроме того, для рисования изображения необходимо использовать контекст, а не холст. Также в вашей функции getSource() вы вызывали параметр "scr", но код в функции вызывает его "src".

Также вы должны явно объявить "а" где-то.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню