Изображение не загружено / загружено к тому времени, когда вы пытаетесь вставить его в холст.
Вы можете добавить свой код в функцию window.onload
, и он должен работать
window.onload = function() {
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var img = document.getElementById("sky");
ctx.drawImage(img, 10, 10);
}
Что касается того, почему он отображается под вашим холстом, у вас есть элемент img
с этим изображением, помещенный после холста.